Articles of multithreading

Sta iterando i valori di ConcurrentHashMap thread safe?

In javadoc per ConcurrentHashMap è il seguente: Le operazioni di recupero (incluso get) generalmente non si bloccano, quindi potrebbero sovrapporsi alle operazioni di aggiornamento (incluse le operazioni di inserimento e rimozione). Recuperati riflettono i risultati delle operazioni di aggiornamento completate più recentemente che mantengono il loro esordio. Per operazioni di aggregazione come putAll e clear, […]

NodeJS è davvero single-threaded?

Node.js risolve “One Thread per Connection Problem” mettendo il modello basato sugli eventi al suo interno, usando un ciclo di eventi invece di thread. Tutte le costose operazioni di I / O vengono sempre eseguite in modo asincrono con un callback che viene eseguito quando l’operazione iniziata viene completata. L’Osservazione SE qualsiasi operazione si verifica […]

Come verificare se uno std :: thread è ancora in esecuzione?

Come posso verificare se uno std::thread è ancora in esecuzione (in modo indipendente dalla piattaforma)? Manca un metodo timed_join() e joinable() non è pensato per questo. Ho pensato di bloccare un mutex con uno std::lock_guard nel thread e usando il metodo try_lock() del mutex per determinare se è ancora bloccato (il thread è in esecuzione), […]

Sincronizzazione del campo non finale

Un avviso viene visualizzato ogni volta che si sincronizza su un campo di class non finale. Ecco il codice: public class X { private Object o; public void setO(Object o) { this.o = o; } public void x() { synchronized (o) // synchronization on a non-final field { } } } così ho cambiato la […]

Quando utilizzare un ciclo Parallel.ForEach anziché un foreach regolare?

Sono un po ‘confuso riguardo Parallel.ForEach . Cos’è Parallel.ForEach e cosa fa esattamente? Si prega di non fare riferimento a nessun collegamento MSDN. Ecco un semplice esempio: string[] lines = File.ReadAllLines(txtProxyListPath.Text); List list_lines = new List(lines); foreach (string line in list_lines) { //My Stuff } Come posso riscrivere questo esempio con Parallel.ForEach ?

SwingWorker in Java

Ho un problema. Ho un JFrame . JDialog un JDialog . Quando viene premuto il pulsante su JDialog , deve essere eliminato e deve essere inviata un’e-mail. Allo stesso tempo, ho bisogno di un altro JDialog per apparire con JProgressBar indeterminato. Quando viene inviata l’e-mail, JDialog deve essere eliminato (e ne viene creato uno nuovo) […]

Se i thread condividono lo stesso PID, come possono essere identificati?

Ho una query relativa all’implementazione dei thread in Linux. Linux non ha un supporto di thread esplicito. Nello userspace, potremmo usare una libreria di thread (come NPTL) per creare thread. Ora se usiamo NPTL supporta la mapping 1: 1. Il kernel userà la funzione clone() per implementare i thread. Supponiamo di aver creato 4 thread. […]

Perché usare un ReentrantLock se si può usare sincronizzato (questo)?

Sto cercando di capire che cosa rende il blocco nella concorrenza così importante se si può usare synchronized (this) . Nel codice fittizio qui sotto, posso fare entrambi: sincronizzato l’intero metodo o sincronizzare l’area vulnerabile (sincronizzato (questo) {…}) OPPURE bloccare l’area di codice vulnerabile con un ReentrantLock. Codice: private final ReentrantLock lock = new ReentrantLock(); […]

Operazione crossthread non valida … – VB.NET

Sto usando vb.net e nel mio programma ottengo questo errore “crossthread operation not valid” quando eseguo il mio backgroundworker che renderà questa casella di testo abilitata true. Il mio sottotitolo principale prima trasformsrà l’abilitato in falso, e quando il backgroundworker lo eseguirà tornerà vero e quindi uscirà. Perché mi dà un errore? A proposito: c’è […]

Java: avvio di una nuova discussione in un costruttore

Perché sta iniziando una nuova discussione in un costruttore disapprovato in Java (o ovunque, del resto). Sto ricevendo degli avvertimenti da parte di Netbeans per farlo, ma non mi sta dando suggerimenti di refactoring. Sto scrivendo un’applicazione client / server Swing e il thread che sto avviando si trova nel costruttore JFrame del server, per […]