Potete trovare qui una spiegazione molto buona su che cosa è una condizione di gara. Ho visto di recente molte persone fare affermazioni confuse sulle condizioni della competizione e le discussioni. Ho imparato che le condizioni di gara potrebbero verificarsi solo tra i thread. Ma ho visto codice simile a condizioni di gara, in eventi […]
Vorrei che il mio thread si chiudesse più agevolmente, quindi sto cercando di implementare un semplice meccanismo di segnalazione. Non penso di volere un thread completamente basato sugli eventi, quindi ho un lavoratore con un metodo per interromperlo con grazia usando una sezione critica Monitor (equivalente a un lock C # credo): DrawingThread.h class DrawingThread […]
Perché ricevo questo messaggio di errore? “WaitAll per più handle su un thread STA non è supportato.” Dovrei usare [MTAThreadAttribute] attribut? Aggiornamento: non funziona con le applicazioni WPF! Nota: l’errore è sulla riga WaitHandle.WaitAll (doneEvents); Sto usando un progetto WPF standard. private void Search() { const int CPUs = 2; var doneEvents = new ManualResetEvent[CPUs]; […]
Sto avendo uno strano problema con più thread e breakpoint in IntelliJ IDEA 14.0.2. Il codice dopo il punto di interruzione viene eseguito prima che si fermi su di esso. import java.util.concurrent.atomic.AtomicInteger; public class Main { private static final int NUM_CLIENTS = 1000; static class TestRunnable implements Runnable { AtomicInteger lock; @Override public void run() […]
Ci sono i thread T1 , T2 e T3 , come possiamo assicurarci che il thread T2 funzioni dopo T1 e il thread T3 funzioni dopo T2 ? Questa domanda è stata posta nella mia intervista. Non ho risposto Si prega di spiegare in dettaglio.
In seguito a una domanda postata da me, sto cercando di utilizzare ThreadPoolExecutor nella mia base di codice. Anche dopo ripetuti tentativi di comprendere dal doc dell’API Java, non sono riuscito a capire chiaramente la funzionalità / lo scopo dietro il parametro keepAliveTime da passare nel costruttore. Spero che qualcuno possa spiegarmi con un buon […]
Ho cercato di familiarizzare con la libreria std :: thread in C ++ 11 e sono arrivato a un ostacolo. Inizialmente provengo da uno sfondo di thread posix, e mi chiedevo come si configura la dimensione dello stack di std :: thread prima della costruzione, dato che non riesco a trovare alcun riferimento all’esecuzione di […]
La documentazione di ConcurrentDictionary non è uno stato esplicito, quindi suppongo che non ci si possa aspettare che i delegati valueFactory e updateValueFactory abbiano la loro esecuzione sincronizzata (rispettivamente dalle operazioni GetOrAdd () e AddOrUpdate () ). Quindi, penso che non possiamo implementare l’uso di risorse al loro interno che richiedono un controllo concorrente senza […]
Quindi, prima ho letto una tonnellata di thread su questo particolare problema e ancora non capisco come risolverlo. Fondamentalmente, sto provando a comunicare con una websocket e memorizzare il messaggio ricevuto in una collezione osservabile che è associata a una listview. So che sto ricevendo una risposta correttamente dal socket, ma quando tenta di aggiungerla […]
Come posso uscire da un ciclo parallel.for ? Ho una dichiarazione piuttosto complessa che assomiglia al seguente: Parallel.ForEach(ColorIndex.AsEnumerable(), new Action((ColorIndexHolder Element) => { if (Element.StartIndex = I) { Found = true; break; } })); Usando la class parallela, posso ottimizzare questo processo di gran lunga. Però; Non riesco a capire come rompere il ciclo parallelo? […]