Torna indietro   Hardware Upgrade Forum > Software > Programmazione

AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa
AWS è il principale operatore di servizi cloud al mondo e da tempo parla delle misure che mette in atto per garantire una maggiore sovranità alle organizzazioni europee. L'azienda ha ora lanciato AWS European Sovereign Cloud, una soluzione specificamente progettata per essere separata e distinta dal cloud "normale" e offrire maggiori tutele e garanzie di sovranità
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto
Xiaomi ha portato sul mercato internazionale la nuova serie Redmi Note, che rappresenta spesso una delle migliori scelte per chi non vuole spendere molto. Il modello 15 Pro+ punta tutto su una batteria capiente e su un ampio display luminoso, sacrificando qualcosa in termini di potenza bruta e velocità di ricarica
HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione
HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione
HONOR ha finalmente lanciato il suo nuovo flagship: Magic 8 Pro. Lo abbiamo provato a fondo in queste settimane e ve lo raccontiamo nella nostra recensione completa. HONOR rimane fedele alle linee della versione precedente, aggiungendo però un nuovo tasto dedicato all'AI. Ma è al suo interno che c'è la vera rivoluzione grazie al nuovo Snapdragon 8 Elite Gen 5 e alla nuova MagicOS 10
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 05-03-2007, 10: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, 11:28   #2
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
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, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 05-03-2007, 14: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, 17:42   #4
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
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, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 05-03-2007, 18: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, 18:09   #6
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
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, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 05-03-2007, 18: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, 18:18   #8
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
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, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa AWS annuncia European Sovereign Cloud, il cloud ...
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto Redmi Note 15 Pro+ 5G: autonomia monstre e displ...
HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione HONOR Magic 8 Pro: ecco il primo TOP del 2026! L...
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata Insta360 Link 2 Pro e 2C Pro: le webcam 4K che t...
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza Motorola edge 70: lo smartphone ultrasottile che...
Vast prosegue la costruzione della stazi...
Chiarito cosa è successo al satel...
Il TAR annulla Bologna Città 30. ...
Laptop con chip NVIDIA da marzo? Emergon...
Costruito in casa, più veloce di ...
Il nuovo Galaxy Book 6 Pro costa il 25% ...
C'è un boom del mercato dei data ...
OVHcloud annuncia la disponiiblità...
Il Wi-Fi 7 ha un nuovo re: da ASUS arriv...
In arrivo l'auto "Frankenstein"...
Chip NVIDIA H200 in Cina? 'Come vendere ...
iPhone 16 torna super conveniente: ora c...
Offerte Amazon pazzesche: tech, smartpho...
Ubisoft annuncia l'arrivo dei 60 fps per...
Infratel Italia: ecco la nuova mappa del...
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: 05:03.


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