Articles of multithreading

Perché dovrebbe aspettare () essere sempre chiamato all’interno di un ciclo

Ho letto che dovremmo sempre chiamare wait() da un loop: while (!condition) { obj.wait(); } Funziona senza loop, quindi perché?

Perché richiamare Thread.currentThread.interrupt () in un blocco InterruptException catch?

Perché invocare il metodo Thread.currentThread.interrupt () nel blocco catch?

Come posso propagare le eccezioni tra i thread?

Abbiamo una funzione in cui un singolo thread chiama (noi chiamiamo questo il thread principale). All’interno del corpo della funzione vengono generati più thread di lavoro per eseguire un lavoro intensivo della CPU, attendere il completamento di tutti i thread, quindi restituire il risultato sul thread principale. Il risultato è che il chiamante può usare […]

Come posso rendere il mio ArrayList thread-safe? Un altro approccio al problema in Java?

Ho una ArrayList che voglio usare per tenere oggetti RaceCar che estendono la class Thread non appena terminati di essere eseguiti. Una class, chiamata Race, gestisce questo ArrayList usando un metodo di callback che l’object RaceCar chiama quando termina l’esecuzione. Il metodo di callback, addFinisher (finisher RaceCar), aggiunge l’object RaceCar a ArrayList. Questo dovrebbe dare […]

Scrivere su un TextBox da un altro thread?

Non riesco a capire come creare una applicazione Windows Form C # in una casella di testo da una discussione. Ad esempio in Program.cs abbiamo lo standard standard () che disegna il modulo: static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } Quindi abbiamo in Form1.cs: public Form1() { InitializeComponent(); new Thread(SampleFunction).Start(); } public static […]

Versione C # della parola chiave sincronizzata di java?

C # ha la sua versione della parola chiave “sincronizzata” java? Cioè in java può essere specificato o per una funzione, un object o un blocco di codice, in questo modo: public synchronized void doImportantStuff() { // dangerous code goes here. } o public void doImportantStuff() { // trivial stuff synchronized(someLock) { // dangerous code […]

La differenza tra le interfacce Runnable e Callable in Java

Qual è la differenza tra l’uso delle interfacce Runnable e Callable quando si progetta un thread concorrente in Java, perché scegliere l’una rispetto all’altra?

Cos’è un mutex?

Un mutex è un concetto di programmazione che viene spesso utilizzato per risolvere problemi di multi-threading. La mia domanda alla comunità: Cos’è un mutex e come lo usi?

Thread multitons sicuri in Java

Data la seguente multiton: public class Multiton { private static final Multiton[] instances = new Multiton[…]; private Multiton(…) { //… } public static Multiton getInstance(int which) { if(instances[which] == null) { instances[which] = new Multiton(…); } return instances[which]; } } Come possiamo mantenerlo thread-safe e pigro senza la costosa sincronizzazione del metodo getInstance () e […]

Le letture e le scritture in C ++ di un Atomic int?

Ho due thread, uno che aggiorna un int e uno che lo legge. Questo è un valore statistico in cui l’ordine delle letture e delle scritture è irrilevante. La mia domanda è, devo comunque sincronizzare l’accesso a questo valore multi-byte? In altre parole, una parte della scrittura può essere completata e interrotta, quindi la lettura […]