Articles of multithreading

Double Checked Locking in Singleton

ecco la mia class personalizzata per il modello singleton. in questo codice, utilizzo il blocco a doppio controllo come di seguito. Mentre leggo molti post su una fonte, dicono che il double check è utile perché impedisce a due thread simultanei di eseguire contemporaneamente due oggetti diversi. public class DoubleCheckLocking { public static class SearchBox […]

C #: in attesa di completamento di tutti i thread

Mi sto imbattendo in un modello comune nel codice che sto scrivendo, in cui devo aspettare che tutti i thread di un gruppo vengano completati, con un timeout. Il timeout dovrebbe essere il tempo necessario per il completamento di tutti i thread, quindi è sufficiente eseguire thread.Join (timeout) per ogni thread non funzionerà, poiché il […]

Ottenere l’ID del thread da un thread

Ad esempio, in C # durante il debug dei thread, puoi vedere l’ID di ciascun thread. Non sono riuscito a trovare un modo per ottenere lo stesso thread, a livello di codice. Non riuscivo nemmeno a ottenere l’ID del thread corrente (nelle proprietà di Thread.currentThread ). Quindi, mi chiedo come fa Visual Studio ad ottenere […]

Le relazioni avvenute prima con i campi volatili e i blocchi sincronizzati in Java e il loro impatto sulle variabili non volatili?

Sono ancora piuttosto nuovo al concetto di threading e cerco di capirne di più. Recentemente, mi sono imbattuto in un post sul blog What Volatile Means in Java di Jeremy Manson, in cui scrive: Quando un thread scrive su una variabile volatile e un altro thread vede quella scrittura, il primo thread indica il secondo […]

Atomic UPDATE .. SELECT in Postgres

Sto costruendo un meccanismo di messa in coda di sorta. Vi sono righe di dati che necessitano di elaborazione e un flag di stato. Sto usando un update .. returning clausola di update .. returning per gestirlo: UPDATE stuff SET computed = ‘working’ WHERE id = (SELECT id from STUFF WHERE computed IS NULL LIMIT […]

Come implementeresti il ​​tuo lock reader / writer in C ++ 11?

Ho una serie di strutture di dati che ho bisogno di proteggere con un blocco di lettori / scrittori. Sono consapevole di boost :: shared_lock, ma mi piacerebbe avere un’implementazione personalizzata usando std :: mutex, std :: condition_variable e / o std :: atomic in modo che possa capire meglio come funziona (e modificarlo in […]

C # Thread Termination and Thread.Abort ()

In MSDN, la descrizione del metodo Thread.Abort () dice: “La chiamata a questo metodo di solito interrompe il thread.” Perché non SEMPRE? In quali casi non termina il thread? Ci sono altre possibilità di terminare i thread?

Perché wait () e notify () sono dichiarati nella class Object di Java?

Perché i metodi wait() e notify() dichiarati nella class Object , anziché nella class Thread ?

“Java DateFormat non è protetto da thread” a cosa serve?

Tutti avvertono riguardo Java DateFormat che non è thread-safe e capisco teoricamente il concetto. Ma non sono in grado di visualizzare quali problemi reali possiamo affrontare a causa di questo. Supponiamo, ho un campo DateFormat in una class e lo stesso viene utilizzato in diversi metodi della class (date di formattazione) in un ambiente multi-thread. […]

È intelligente sostituire boost :: thread e boost :: mutex con equivalenti c ++ 11?

Motivazione: la ragione per cui sto considerando è che il mio geniale project manager pensa che il boost sia un’altra dipendenza e che sia orribile perché “si dipende da esso” (ho provato a spiegare la qualità della spinta, poi ho rinunciato dopo un po ‘di tempo 🙁 La ragione più piccola per cui mi piacerebbe […]