Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DJI Osmo Pocket 4: la gimbal camera tascabile cresce e ha nuovi controlli fisici
DJI Osmo Pocket 4: la gimbal camera tascabile cresce e ha nuovi controlli fisici
DJI porta un importante aggiornamento alla sua linea di gimbal camera tascabili con Osmo Pocket 4: sensore CMOS da 1 pollice rinnovato, gamma dinamica a 14 stop, profilo colore D-Log a 10 bit, slow motion a 4K/240fps e 107 GB di archiviazione integrata. Un prodotto pensato per i creator avanzati, ma che convince anche per l'uso quotidiano
Sony INZONE H6 Air: il primo headset open-back di Sony per giocatori
Sony INZONE H6 Air: il primo headset open-back di Sony per giocatori
Il primo headset open-back della linea INZONE arriva a 200 euro con driver derivati dalle cuffie da studio MDR-MV1 e un peso record di soli 199 grammi
Nutanix cambia pelle: dall’iperconvergenza alla piattaforma full stack per cloud ibrido e IA
Nutanix cambia pelle: dall’iperconvergenza alla piattaforma full stack per cloud ibrido e IA
Al .NEXT 2026 di Chicago, Nutanix ha mostrato quanto sia cambiata: una piattaforma software che gestisce VM, container e carichi di lavoro IA ovunque, dall’on-premise al cloud pubblico. Con un’esecuzione rapidissima sulle partnership e sulla migrazione da VMware
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
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, 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
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, 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
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, 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
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


DJI Osmo Pocket 4: la gimbal camera tascabile cresce e ha nuovi controlli fisici DJI Osmo Pocket 4: la gimbal camera tascabile cr...
Sony INZONE H6 Air: il primo headset open-back di Sony per giocatori Sony INZONE H6 Air: il primo headset open-back d...
Nutanix cambia pelle: dall’iperconvergenza alla piattaforma full stack per cloud ibrido e IA Nutanix cambia pelle: dall’iperconvergenza alla ...
Recensione Xiaomi Pad 8 Pro: potenza bruta e HyperOS 3 per sfidare la fascia alta Recensione Xiaomi Pad 8 Pro: potenza bruta e Hyp...
NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abb...
Tra nuove mappe e modalità: Battl...
Narwal Flow 2 ufficiale: 31000 Pa di asp...
GPT-Rosalind: OpenAI lancia il suo primo...
Meta aumenta i prezzi dei visori Meta Qu...
Metro 2039 annunciato con un trailer di ...
UMC aumenterà i prezzi dei wafer ...
Intel rafforza la divisione Foundry: arr...
Apple MacBook Pro 16'' M4 Max a 3.499€: ...
Apple ignora la crisi? Gli iPhone 18 Pro...
Claude Opus 4.7 è disponibile: Anthropic...
OnePlus conferma i rumor: la console por...
Netflix guarda al futuro: prezzi pi&ugra...
Il crunch è necessario per svilup...
JBL Tune 730BT a 50€: un prezzo speciale...
L'accesso a Internet da rete mobile &egr...
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: 09:49.


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