2016-05-25 6 views
1

Lädt Daten von einem anderen Thread; Gewinde sicher?Daten von einem anderen Thread laden, ist es threadsicher?

Zum Beispiel

public static void main(String[] args) 
{ 

    Thread threadOne = new Thread(new Runnable() 
    { 

     @Override 
     public void run() 
     { 
      loadContacts(); 
     } 

    }); 

    Thread threadTwo = new Thread(new Runnable() 
    { 

     @Override 
     public void run() 
     { 
      loadDefinitions();//Loads definitions 
     } 

    }); 

    threadOne.start(); 
    threadTwo.start(); 

} 

Der Code zeigt, dass die Liste wird mit 1 Faden geladen werden, und die Liste wird 2. dieser Thread sicher ist auf Thread geladen werden? wenn wir einen letzten Thread für Spiellogiken haben, der auf beide Listen zugreift?

Antwort

0

Dies ist nur sicher, wenn Sie sicherstellen, dass der letzte Thread, der auf beide Listen zugreift, wartet, bis sowohl threadOne als auch threadTwo abgeschlossen sind, z. Rufen Sie threadOne.join() und threadTwo.join() bevor Sie versuchen, aus den Listen zu lesen.

Wenn der letzte Thread nicht warten soll, müssen Sie eine Synchronisierung hinzufügen, um die Threadsicherheit zu gewährleisten.

+0

Danke für die Antwort – Zak

Verwandte Themen