|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Oct 2005
Città: Pisa
Messaggi: 1047
|
[JAVA] dubbio su variabili condivise tra Thread
ho un dubbio a cui non so darmi una risposta.
Nella mia classe principale ho il main in cui istanzio un vector Vector<myObject> vett= new Vector<myObject>(); ... lo riempio con alcune istruzioni etc... dopo mi creo un Thread, con apposito Runnable (myTask), che voglio condivida questo vector, quindi ho fatto: Thread th = new Thread( new myTask(vett)); th.start(); l'esecuzione di questo thread trova il vettore vuoto! sono sicuro che è pieno ovviamente. come mai?
__________________
Vendite concluse ottimamente con: Bastian UMTS, Tiscaliniano. --------------------------------------------------------- 1) Macbook Pro Core 2 Duo 2,16Ghz - 2GB di RAM - HD 160GB - Glossy Widescreen - 2°Gen 2) iPhone 3G - 8GB Black 3) Ipod Shuffle Blu 1GB 4) iMac 27" QuadCore i7 Ultima modifica di noodles83 : 18-01-2010 alle 17:22. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2005
Città: Pisa
Messaggi: 1047
|
RISOLTO.
facevo io una cavolata e sincronizzavo male i thread. pardon.
__________________
Vendite concluse ottimamente con: Bastian UMTS, Tiscaliniano. --------------------------------------------------------- 1) Macbook Pro Core 2 Duo 2,16Ghz - 2GB di RAM - HD 160GB - Glossy Widescreen - 2°Gen 2) iPhone 3G - 8GB Black 3) Ipod Shuffle Blu 1GB 4) iMac 27" QuadCore i7 |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 7863
|
le specifiche dicono che nel momento in cui starti il thread, questo vede lo stato dell' array relativamente all' ultima azione di chi lo ha lanciato, in questo caso il thread main, quindi un array riempito nello specifico.
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Oct 2005
Città: Pisa
Messaggi: 1047
|
altra domanda...
le API di java indicano che Vector<T> è "synchronized". Il fatto che sia synchronized mi evita di inserire i suoi metodi d'istanza dentro blocchi synchronized(vettore){} perchè i metodi sono già sincronizzati? Se lo facessi sarei solo ridondante?
__________________
Vendite concluse ottimamente con: Bastian UMTS, Tiscaliniano. --------------------------------------------------------- 1) Macbook Pro Core 2 Duo 2,16Ghz - 2GB di RAM - HD 160GB - Glossy Widescreen - 2°Gen 2) iPhone 3G - 8GB Black 3) Ipod Shuffle Blu 1GB 4) iMac 27" QuadCore i7 |
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
|
Quote:
|
|
|
|
|
|
|
#7 | ||
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
La classe Vector è presente nel JDK dalla versione 1.0: e' legacy code; aveva subito un retrofitting che gli faceva implementare List al passaggio alla versione 1.2 del JDK perchè diventasse un membro del neo-introdotto Collection Framework (infatti alcuni metodi della sua interfaccia pubblica non sono dichiarati come synchronized ma fungono da meri wrapper dei vecchi metodi synchronized). Quote:
![]() @EDIT: sincronizzato*, in effetti è più corretto dire che è thread-safe.
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) Ultima modifica di banryu79 : 20-01-2010 alle 16:28. |
||
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
|
"sono CHÉZZI AMARI!!!"
Lino Banfi, Fracchia la Belva Umana
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:49.




















