Articles of multithreading

Como fazer um encadeamento Java esperar pela saída de outro encadeamento?

Estou fazendo um aplicativo Java com um thread de aplicativo-lógica e um thread de access ao database. Ambos persistem por toda a vida útil do aplicativo e ambos precisam estar em execução ao mesmo tempo (um fala com o servidor, um fala com o usuário; quando o aplicativo é iniciado, preciso que ambos funcionem). No […]

Java: Como testar methods que chamam System.exit ()?

Eu tenho alguns methods que devem chamar System.exit() em determinadas inputs. Infelizmente, testar esses casos faz com que o JUnit termine! Colocar as chamadas de método em um novo Thread não parece ajudar, pois System.exit() finaliza a JVM, não apenas o thread atual. Existem padrões comuns para lidar com isso? Por exemplo, posso replace um […]

Qual é a diferença entre atômica / volátil / sincronizada?

Como o trabalho atômico / volátil / sincronizado funciona internamente? Qual é a diferença entre os seguintes blocos de código? Código 1 private int counter; public int getNextUniqueIndex() { return counter++; } Código 2 private AtomicInteger counter; public int getNextUniqueIndex() { return counter.getAndIncrement(); } Código 3 private volatile int counter; public int getNextUniqueIndex() { return […]

Pergunta sobre terminar um thread de forma limpa no .NET

Eu entendo Thread.Abort () é mal da multiplicidade de artigos que eu li sobre o tema, então eu estou atualmente no processo de rasgar para fora do meu aborto, a fim de substituí-lo por um caminho mais limpo; e depois de comparar as estratégias de usuários das pessoas aqui no stackoverflow e depois de ler […]

Manipulando InterruptedException em Java

Qual é a diferença entre as seguintes maneiras de lidar com InterruptedException ? Qual é a melhor maneira de fazer isso? try{ //… } catch(InterruptedException e) { Thread.currentThread().interrupt(); } OU try{ //… } catch(InterruptedException e) { throw new RuntimeException(e); } EDIT: Eu também gostaria de saber em quais cenários são esses dois usados.

Java: notify () vs. notifyAll () tudo de novo

Se um Googles por “diferença entre notify() e notifyAll() “, então muitas explicações aparecerão (deixando de lado os parágrafos do javadoc). Tudo se resume ao número de threads em espera sendo acordados: um em notify() e all em notifyAll() . No entanto (se eu entendi a diferença entre esses methods), apenas um thread é sempre […]

O segmento de chamada deve ser STA, porque muitos componentes de interface do usuário exigem

Estou usando o http://www.codeproject.com/KB/IP/Facebook_API.aspx Eu estou tentando chamar o XAML que é criado usando o WPF . Mas isso me dá um erro: O segmento de chamada deve ser STA, porque muitos componentes de interface do usuário exigem isso. Eu não sei o que fazer. Eu estou tentando fazer isso: FacebookApplication.FacebookFriendsList ffl = new FacebookFriendsList(); […]

Interface de usuário do aplicativo WinForm trava durante a operação de longa duração

Eu tenho um aplicativo de formulários do windows em que eu preciso usar um loop para ter um grande número de chamadas remotas em torno de 2000 – 3000 chamadas, e enquanto executo o loop for, perco meu controle nos controles de formulário e formulário, pois ele se torna um grande processo e em algum […]

Diferença entre o carregador de classs de contexto do thread e o classloader normal

Qual é a diferença entre o carregador de classs de contexto de um thread e um classloader normal? Ou seja, se Thread.currentThread().getContextClassLoader() e getClass().getClassLoader() retornam objects diferentes do carregador de classs, qual deles será usado?

Como iniciar / parar / reiniciar um thread em Java?

Estou tendo dificuldades em encontrar uma maneira de iniciar, parar e reiniciar um thread em Java. Especificamente, eu tenho uma class Task (atualmente implementa Runnable ) em um arquivo Task.java . Meu aplicativo principal precisa ser capaz de iniciar esta tarefa em um segmento, interromper (matar) o segmento quando necessário, e às vezes matar e […]