Articles of multithreading

Perché i compilatori non fondono le scritture ridondanti std :: atomic?

Mi chiedo perché nessun compilatore sia preparato per unire scritture consecutive dello stesso valore su una singola variabile atomica, ad esempio: #include std::atomic y(0); void f() { auto order = std::memory_order_relaxed; y.store(1, order); y.store(1, order); y.store(1, order); } Ogni compilatore che ho provato rilascerà tre volte la suddetta scrittura. Quale osservatore legittimo, senza razza, potrebbe […]

Rendering multithread su OpenGL

Ho un’applicazione multithread, in cui sto cercando di renderizzare con thread diversi. Per prima cosa ho provato a utilizzare lo stesso contesto di rendering tra tutti i thread, ma stavo ottenendo contesti NULL attuali per altri thread. Ho letto su Internet che un contesto può essere solo corrente a un thread alla volta. Quindi ho […]

Java ProcessBuilder: blocchi di processi risultanti

Ho cercato di utilizzare ProcessBuilder di Java per avviare un’applicazione in Linux che dovrebbe funzionare “a lungo termine”. Il modo in cui questo programma viene eseguito è quello di avviare un comando (in questo caso, sto lanciando un’applicazione di riproduzione multimediale), consentirne l’esecuzione e controllare che non si sia arrestato in modo anomalo. Ad esempio, […]

C ++ Equivalente a Java’s BlockingQueue

Sono in procinto di trasferire un po ‘di codice Java in C ++, e una sezione specifica usa un BlockingQueue per passare messaggi da molti produttori a un singolo consumatore. Se non si ha familiarità con cosa sia un Java BlockingQueue, è solo una coda con una capacità difficile, che espone metodi thread-safe da put […]

Thread di BackgroundWorker in ASP.NET

È ansible utilizzare il thread BackGroundWorker in ASP.NET 2.0 per il seguente scenario, in modo che l’utente alla fine del browser non debba attendere per molto tempo? Scenario Il browser richiede una pagina, ad esempio SendEmails.aspx La pagina SendEmails.aspx crea un thread di BackgroundWorker e fornisce al thread un contesto sufficiente per creare e inviare […]

Gli elementi primitivi java sono atomici di progettazione o accidentali?

Gli interi primari java (int) atomici sono del tutto, per quello? Alcuni esperimenti con due thread che condividono un int sembrano indicare che lo sono , ma ovviamente l’assenza di prove che non lo sono non implica che lo siano. In particolare, il test che ho eseguito è stato questo: public class IntSafeChecker { static […]

Come dimostrare i problemi di visibilità del multithreading Java?

Se si accede a variabili in Java da più thread, è necessario assicurarsi che vengano pubblicati in modo sicuro. Questo di solito significa usare synchronized o volatile . Ho l’impressione che alcuni dei miei colleghi non prendano sul serio questo problema, dal momento che “non hanno mai sentito parlare di volatile prima e i loro […]

comunicazione inter thread in java

In che modo le discussioni che fanno affidamento l’una sull’altra comunicano in Java? Ad esempio, sto creando un web crawler con thread che richiedono dati provenienti da altri thread.

L’utilizzo cross-thread della proprietà “HttpContext.Current” e cose correlate

Ho letto da la seguente dichiarazione: Un’altra proprietà utile da conoscere è la proprietà Current static della class HttpContext. Questa proprietà punta sempre sull’istanza corrente della class HttpContext per la richiesta di assistenza. Questo può essere utile se si scrivono classi di helper che verranno utilizzate da pagine o altre classi di pipeline e potrebbe […]

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 […]