Articles of multithreading

I socket Java supportano full duplex?

È ansible avere una scrittura di thread su OutputStream di un Socket Java, mentre un’altra legge dallo InputStream del socket, senza che i thread debbano sincronizzarsi sul socket?

Come catturare le eccezioni da un object ThreadPool.QueueUserWorkItem?

Ho il seguente codice che genera un’eccezione: ThreadPool.QueueUserWorkItem(state => action()); Quando l’azione genera un’eccezione, il mio programma si arresta in modo anomalo. Qual è la migliore pratica per gestire questa situazione? Correlato: eccezioni sui thread ThreadNet di Net

Se un metodo sincronizzato chiama un altro metodo non sincronizzato, c’è un blocco sul metodo non sincronizzato

In Java, se un metodo sincronizzato contiene una chiamata a una non sincronizzata, un altro metodo può ancora accedere al metodo non sincronizzato allo stesso tempo? Fondamentalmente quello che sto chiedendo è che tutto nel metodo sincronizzato abbia un blocco su di esso (comprese le chiamate ad altri metodi sincronizzati)? Grazie mille

“Passaggio sopra” durante il debug di programmi multithread in Visual Studio

Una cosa che mi infastidisce quando eseguo il debug di programmi in Visual Studio (nel mio caso nel 2005) è che quando uso “step over” (premendo F10 ) per eseguire la riga successiva del codice, spesso finisco per raggiungere quella particolare riga di codice in un thread completamente diverso da quello che stavo guardando. Ciò […]

Dispatcher Invoke (…) vs BeginInvoke (…) confusione

Sono confuso perché non riesco a far funzionare questa controprova con 2 (o più) countertextbox in esecuzione simultanea con l’uso di “BeginInvoke” sul mio Dispatcher nel metodo Count (). Puoi risolvere il problema sostituendo BeginInvoke con Invoke. Ma questo non risolve la mia confusione. Ecco il codice di esempio di cui sto parlando: public class […]

Qual è il modo migliore per passare le informazioni tra i thread?

Voglio ascoltare un server mentre il mio programma sta facendo altre cose, quando un messaggio viene ricevuto dal server, voglio interpretarlo. Conosco il threading ma non sono completamente sicuro di come funziona. Se ho un thread in ascolto per il server, come posso passare quei dati al thread principale per l’interpretazione? Qual è il modo […]

Miglioramento delle prestazioni di HttpWebRequests con multithread in .NET

Sto provando a misurare il throughput di un webservice. Per fare ciò, ho scritto un piccolo strumento che invia continuamente richieste e legge le risposte da un numero di thread. Il contenuto del ciclo interno di ogni thread è simile al seguente: public void PerformRequest() { WebRequest webRequest = WebRequest.Create(_uri); webRequest.ContentType = “application/ocsp-request”; webRequest.Method = […]

Async WebApi Thread.CurrentCulture

Ho un progetto di API Web ospitato da OWIN ospitato autonomamente che fornisce alcuni metodi REST di base per me. Voglio avere messaggi di errore multilingue, quindi utilizzo i file di risorse e un BaseController che imposta Thread.CurrentCulture e Thread.CurrentUICulture nell’intestazione Accept-Language della richiesta. public override Task ExecuteAsync(HttpControllerContext controllerContext, CancellationToken cancellationToken) { if (controllerContext.Request.Headers.AcceptLanguage != […]

Come leggere correttamente un campo int Interlocked.Increment’ed?

Supponiamo che io abbia un campo int non volatile e un thread che è Interlocked.Increment . Un altro thread può leggerlo direttamente in modo sicuro o la lettura deve anche essere interbloccata? In precedenza ho pensato che dovevo usare una lettura interbloccata per garantire che io vedessi il valore corrente, dato che, dopo tutto, il […]

Trasformare un ExecutorService in demone in Java

Sto usando un ExecutoreService in Java 1.6, iniziato semplicemente da ExecutorService pool = Executors.newFixedThreadPool(THREADS). Quando il mio thread principale è terminato (insieme a tutte le attività elaborate dal pool di thread), questo pool impedirà al mio programma di spegnersi finché non richiama esplicitamente pool.shutdown(); Posso evitare di dover chiamare questo in qualche modo trasformando la […]