Articles of multithreading

Verifica di null prima dell’erogazione dell’evento … thread safe?

Qualcosa che mi confonde, ma non ha mai causato problemi … il modo consigliato di inviare un evento è il seguente: public event EventHandler SomeEvent; … { …. if(SomeEvent!=null)SomeEvent(); } In un ambiente multi-thread, in che modo questo codice garantisce che un altro thread non modificherà l’elenco di invocazione di SomeEvent tra il controllo per […]

Come implemento la priorità delle attività utilizzando un ExecutorService in Java 5?

Sto implementando un meccanismo di condivisione dei thread in cui mi piacerebbe eseguire compiti con priorità diverse. Mi piacerebbe avere un buon meccanismo per cui posso inviare un compito ad alta priorità al servizio e averlo programmato prima di altre attività. La priorità dell’attività è una proprietà intrinseca del compito stesso (indipendentemente dal fatto che […]

Java’s Fork / Join vs ExecutorService – quando usare quale?

Ho appena finito di leggere questo post: Qual è il vantaggio di un Java-5 ThreadPoolExecutor su Java-7 ForkJoinPool? e sentivo che la risposta non è abbastanza diritta. Puoi spiegare in un linguaggio semplice ed esempi, quali sono i compromessi tra il framework Fork-Join di Java 7 e le soluzioni precedenti? Ho letto anche il numero […]

Le dichiarazioni Thread.sleep (0) e Thread.yield () sono equivalenti?

Queste due affermazioni sono equivalenti? Thread.sleep(0); Thread.yield();

Quando fa Thread.sleep di Java lancia InterruptedException?

Quando fa Thread.sleep di Java lancia InterruptedException? È sicuro ignorarlo? Non sto facendo nessun multithreading. Voglio solo aspettare qualche secondo prima di riprovare.

SynchronizationContext corrente non può essere utilizzato come TaskScheduler

Sto utilizzando Google Task per eseguire chiamate server con esecuzione prolungata nel mio ViewModel e i risultati vengono TaskScheduler.FromSyncronizationContext() marshalling su Dispatcher utilizzando TaskScheduler.FromSyncronizationContext() . Per esempio: var context = TaskScheduler.FromCurrentSynchronizationContext(); this.Message = “Loading…”; Task task = Task.Factory.StartNew(() => { … }) .ContinueWith(x => this.Message = “Completed” , context); Funziona bene quando eseguo l’applicazione. Ma […]

Forza l’aggiornamento della GUI dal thread dell’interfaccia utente

In WinForms, come impongo un aggiornamento dell’interfaccia utente immediato dal thread dell’interfaccia utente? Quello che sto facendo è all’incirca: label.Text = “Please Wait…” try { SomewhatLongRunningOperation(); } catch(Exception e) { label.Text = “Error: ” + e.Message; return; } label.Text = “Success!”; Il testo dell’etichetta non viene impostato su “Please Wait …” prima dell’operazione. Ho risolto […]

Esempio di thread Java?

Qualcuno potrebbe dare un programma di esempio che spiega i thread Java in modo semplice? Ad esempio, supponiamo di avere tre thread t1 , t2 e t3 . Voglio un codice che dimostri che i thread vengano eseguiti simultaneamente, e non in modo sequenziale.

Quali sono gli usi principali di yield () e in che cosa differisce da join () e interrupt ()?

Sono un po ‘confuso sull’uso del metodo yield() in Java, in particolare nel codice di esempio qui sotto. Ho anche letto che yield () è ‘usato per impedire l’esecuzione di un thread’. Le mie domande sono: Credo che il codice sottostante produca lo stesso risultato sia quando si usa yield() sia quando non lo si […]

Restituire un valore dal thread?

Come posso restituire un valore da un thread?