Articles of multithreading

O que esse segmento aderir ao código significa?

Nesse código, o que os dois juntam e quebram significa? t1.join() faz com que t2 pare até que t1 termine? Thread t1 = new Thread(new EventThread(“e1”)); t1.start(); Thread t2 = new Thread(new EventThread(“e2”)); t2.start(); while (true) { try { t1.join(); t2.join(); break; } catch (InterruptedException e) { e.printStackTrace(); } }

Quais resources são compartilhados entre threads?

Recentemente, me perguntaram em uma entrevista qual é a diferença entre um processo e um thread. Realmente, eu não sabia a resposta. Eu pensei por um minuto e dei uma resposta muito estranha. Threads compartilham a mesma memory, processos não. Depois de responder isso, o entrevistador me deu um sorriso maligno e me fez as […]

Como usar corretamente o Java Executor?

Eu usei Java Executors em meus aplicativos multi-threading, mas não consigo descobrir quando é o melhor para usar cada uma das seguintes maneiras: 1 ExecutorService executor=Executors.newFixedThreadPool(50); executor.execute(new A_Runner(… some parameter …)); executor.shutdown(); while (!executor.isTerminated()) { Thread.sleep(100); } 2 int Page_Count=200; ExecutorService executor=Executors.newFixedThreadPool(50); doneSignal=new CountDownLatch(Page_Count); for (int i=0;i<Page_Count;i++) executor.execute(new A_Runner(doneSignal, … some parameter …)); doneSignal.await(); executor.shutdown(); […]

Quão preciso é Thread.Sleep (TimeSpan)?

Eu me deparei com um teste de unidade que está falhando intermitentemente porque o tempo decorrido não é o que eu espero que seja. Um exemplo de como este teste se parece é: Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); TimeSpan oneSecond = new TimeSpan(0, 0, 1); for(int i=0; i<3; i++) { Thread.Sleep(oneSecond); } stopwatch.Stop(); Assert.GreaterOrEqual(stopwatch.ElapsedMilliseconds, […]

O que é um código de saída de thread?

O que exatamente é um código de saída de thread na janela de saída durante a debugging? Que informação me dá? É de alguma forma útil ou apenas uma coisa interna que não deveria me incomodar? The thread 0x552c has exited with code 259 (0x103). The thread 0x4440 has exited with code 0 (0x0). Existe […]

Cancelando uma tarefa pendente de forma síncrona no encadeamento da interface do usuário

Às vezes, depois de solicitar o cancelamento de uma tarefa pendente com CancellationTokenSource.Cancel , preciso garantir que a tarefa tenha atingido adequadamente o estado cancelado antes que eu possa continuar. Na maioria das vezes, enfrento essa situação quando o aplicativo está sendo encerrado e desejo cancelar todas as tarefas pendentes normalmente. No entanto, ele também […]

Como obter o uso da CPU por thread no windows (win32)

Procurando por funções de API do Win32, código de exemplo C ++ ou Delphi que me informa o uso da CPU (porcentagem e / ou tempo total de CPU) de um thread (não o total de um processo). Eu tenho o ID do segmento. Eu sei que o Sysinternals Process Explorer pode exibir essas informações, […]

Duplo verificado bloqueio em singleton

aqui está minha class personalizada para o padrão singleton. neste código, eu uso o bloqueio verificado como abaixo. Como eu leio muitos posts em alguma fonte, eles dizem que checagem dupla é útil porque evita que dois threads simultâneos executados ao mesmo tempo façam dois objects diferentes. public class DoubleCheckLocking { public static class SearchBox […]

C #: esperando por todos os segmentos para concluir

Eu estou correndo em um padrão comum no código que estou escrevendo, onde eu preciso esperar por todos os segmentos em um grupo para completar, com um tempo limite. O tempo limite é suposto ser o tempo necessário para que todos os threads sejam concluídos, portanto, simplesmente fazer thread.Join (timeout) para cada thread não funcionará, […]

Acontece antes de relacionamentos com campos voláteis e blocos sincronizados em Java – e seu impacto em variables ​​não voláteis?

Ainda sou muito novo no conceito de threading e tento entender mais sobre isso. Recentemente, me deparei com um post no blog What Volatile Means in Java, de Jeremy Manson, onde ele escreve: Quando um thread grava em uma variável volátil, e outro thread vê esse write, o primeiro thread informa ao segundo sobre todo […]