Torna indietro   Hardware Upgrade Forum > Software > Programmazione

L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026
L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026
La parola d'ordine al Nextcloud Summit 2026, che si è tenuto a Monaco, è stata "sovranità". Non come è spesso usato questo termine in politica ma, al contrario, come capacità positiva di decidere il proprio destino tecnologico, con modalità collaborative e aperte. L'Europa dice già molto nel mondo open source, che viene visto come mezzo per ottenere la tanto agognata autonomia digitale
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più
Dreame X60 Pro Ultra Complete implementa due bracci estensibili, per spazzola e moccio, che si spingono ben oltre quanto visto sino ad oggi permettendo una pulizia di casa ancor più capillare e precisa
TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati
TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati
La tecnologia SQD-Mini LED di TCL arriva sul taglio da 65 pollici con la serie C8L: 2040 zone, pannello WHVA 2.0 e un picco che alle rilevazioni delle sonde tocca i 4400 nit nel profilo Filmmaker e un HDR quasi perfetto
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 05-03-2007, 09:58   #1
Oceans11
Senior Member
 
L'Avatar di Oceans11
 
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
[Java] problemi con i thread

1) Stoppare i thread
Ho già dato un'occhiata qui, ma non mi è mica tanto chiaro...

esistono un'infinità di programmi che permettono la "pausa" durante una computazione molto lunga o su una funzione "bloccante"...

se mi trovo in uno di questi casi come faccio a sospendere le operazioni dei thread??

premetto che ho un thread "principale" che gestisce la partenza di altri thread "figli".

2) Ho un metodo per scrivere su file...se 2 thread devono utilizzare quel metodo per uno stesso file come evito problemi???basta dichiarare il metodo synchronized o no?
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes]
"Pirating software? Choose Microsoft!"
Oceans11 è offline   Rispondi citando il messaggio o parte di esso
Old 05-03-2007, 10:28   #2
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da Oceans11 Guarda i messaggi
1) Stoppare i thread
Ho già dato un'occhiata qui, ma non mi è mica tanto chiaro...

esistono un'infinità di programmi che permettono la "pausa" durante una computazione molto lunga o su una funzione "bloccante"...

se mi trovo in uno di questi casi come faccio a sospendere le operazioni dei thread??
Leggi <questo> documento.

Quote:
Originariamente inviato da Oceans11 Guarda i messaggi
2) Ho un metodo per scrivere su file...se 2 thread devono utilizzare quel metodo per uno stesso file come evito problemi???basta dichiarare il metodo synchronized o no?
Dipende da cosa hai fatto realmente a livello di codice. Cosa prende come parametri questo metodo, e cosa fa sul file? Cioè quali classi e oggetti usi?
__________________
Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 05-03-2007, 13:31   #3
Oceans11
Senior Member
 
L'Avatar di Oceans11
 
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
1) grazie per la dritta...ho dato una letta, appena posso vedo di applicare, se qualcosa non mi torna torno a chiedere consiglio!

2) il metodo è questo:
Codice:
public ?synchronized? void scriviSuFile(File f, String line) throws IOException {
    boolean append = true;
    PrintWriter pw = new PrintWriter(new FileWriter(f, append));
    pw.println(line);
    pw.close();
}
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes]
"Pirating software? Choose Microsoft!"
Oceans11 è offline   Rispondi citando il messaggio o parte di esso
Old 05-03-2007, 16:42   #4
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da Oceans11 Guarda i messaggi
2) il metodo è questo:
Codice:
public ?synchronized? void scriviSuFile(File f, String line) throws IOException {
    boolean append = true;
    PrintWriter pw = new PrintWriter(new FileWriter(f, append));
    pw.println(line);
    pw.close();
}
Facciamo una premessa (che forse sai già): synchronized serve per far sì che 1 solo thread possa ottenere il lock su un determinato oggetto. Mettendo synchronized ad un metodo di istanza, il lock è fatto sulla istanza della classe che contiene il metodo.

Supponiamo che il tuo metodo sia nella classe ScritturaFile (tanto per dare un nome) e che tu abbia messo il synchronized al metodo. Se 2 o più thread invocano scriviSuFile() sulla stessa istanza di ScritturaFile, allora sei certo che solamente 1 thread per volta eseguirà il metodo.

Nulla però vieterebbe di avere più istanze della tua classe e invocare il metodo da più thread ma sulle diverse istanze. In questo caso non ci sarebbe alcuna sincronizzazione!!

Insomma, se la tua necessità è quella di far sì che l'accesso al file sia esclusivo, allora è un problema di lock del file e non di sincronizzazione a livello di metodi.
__________________
Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 05-03-2007, 17:05   #5
Oceans11
Senior Member
 
L'Avatar di Oceans11
 
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
Quote:
Originariamente inviato da andbin Guarda i messaggi
Supponiamo che il tuo metodo sia nella classe ScritturaFile (tanto per dare un nome) e che tu abbia messo il synchronized al metodo. Se 2 o più thread invocano scriviSuFile() sulla stessa istanza di ScritturaFile, allora sei certo che solamente 1 thread per volta eseguirà il metodo.

Nulla però vieterebbe di avere più istanze della tua classe e invocare il metodo da più thread ma sulle diverse istanze. In questo caso non ci sarebbe alcuna sincronizzazione!!

Insomma, se la tua necessità è quella di far sì che l'accesso al file sia esclusivo, allora è un problema di lock del file e non di sincronizzazione a livello di metodi.
Ok penso di aver capito. In effetti il metodo in questione appartiene alla classe Thread che ho esteso, chiamiamola MyThread; però uso diverse istanze di quella classe ed ognuna ha il suo metodo scriviSuFile. Allora è inutile usare sync perchè ognuna invocherebbe il metodo senza sincronizzazione.

Ora però mi chiedo, e se il metodo fosse di classe e non di istanza?
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes]
"Pirating software? Choose Microsoft!"
Oceans11 è offline   Rispondi citando il messaggio o parte di esso
Old 05-03-2007, 17:09   #6
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da Oceans11 Guarda i messaggi
Ora però mi chiedo, e se il metodo fosse di classe e non di istanza?
Se il metodo è "di classe" ed ha il synchronized, allora il lock è sull'oggetto Class associato alla classe.
__________________
Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 05-03-2007, 17:13   #7
Oceans11
Senior Member
 
L'Avatar di Oceans11
 
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
Quote:
Originariamente inviato da andbin Guarda i messaggi
Se il metodo è "di classe" ed ha il synchronized, allora il lock è sull'oggetto Class associato alla classe.
E sto oggetto Class sarebbe??
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes]
"Pirating software? Choose Microsoft!"
Oceans11 è offline   Rispondi citando il messaggio o parte di esso
Old 05-03-2007, 17:18   #8
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da Oceans11 Guarda i messaggi
E sto oggetto Class sarebbe??
java.lang.Class .... la classe che rappresenta .. una classe.
__________________
Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026 L'Europa conta nella tecnologia e può ess...
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più Dreame X60 Pro Ultra Complete: i bracci si esten...
TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati TCL 65C8L, la recensione del SQD-Mini LED da 440...
MSI Maestro 500 Wireless: ANC e 90 ore di autonomia a 70 euro MSI Maestro 500 Wireless: ANC e 90 ore di autono...
NL-LC1 è il primo dissipatore a liquido AIO di Noctua: silenzio è la parola d'ordine NL-LC1 è il primo dissipatore a liquido A...
La cometa 3I/Atlas è una finestra sul "m...
NVIDIA punta sui data center AI raffredd...
Galaxy Watch Ultra 2 protagonista dei nu...
Valve svela i prezzi ufficiali di Steam ...
CORSAIR accelera per il Prime Day: scont...
Un commento di YouTube alimenta le specu...
GM lascia a casa 1300 operai della Facto...
Microsoft Kilby: il datacenter AI che di...
Recensione HONOR Earbuds 4: un nuovo rif...
Da nemica giurata dell'AI a partner di O...
Arriva l'arma definitiva contro le zanza...
Il prato si cura da solo: MOVA LiDAX Ult...
Diventeremo più stupidi e pigri s...
Truffe e spam anche via PEC: oltre 650 c...
Cloudflare presenta PACT: token anonimi ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 12:36.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v