Articles of multithreading

Segmentos e contadores compartilhados em java

Eu fiz este exercício na uni: Escreva um programa que declare um contador inteiro compartilhado e depois crie dois threads, um dos quais tenta incrementar o contador 1000 vezes e o outro tenta decrementar o contador 1000 vezes. Quando cada thread terminar o loop, deverá imprimir o valor final do contador. (Dica: você precisará definir […]

Imprimir estranho e até usando dois threads em Java

Eu estou tentando fazer isso usando dois tópicos como abaixo. Alguém pode apontar o erro óbvio que estou fazendo aqui? public class OddEven { public static boolean available = false; public static Queue queue = new LinkedList(); static Thread threadEven = new Thread() { @Override public void run() { printEven(); } public synchronized void printEven() […]

Parando um encadeamento de loop ServerSocket accept ()

Estou implementando uma API muito básica para ter um controle melhor sobre ServerSocket e Sockets, mas estou em um problema muito estranho que não posso corrigir devido à minha falta de conhecimento de threads. Deixe-me explicar isso. Na minha class SocketStreamReceiver eu uso um thread secundário para ouvir novos sockets com ServerSocket#accept() . Existem 2 […]

loop de jogo – tópicos

um loop de jogo em um programa java deve sempre ser executado no encadeamento de envio de events? Porque meus keylisteners estão rodando no thread de events AWT e eu quero que os key events sejam processados ​​no mesmo thread que o resto do jogo para evitar bugs baseados em threads. Se eu não executar […]

Aguardando todos os threads gerados pelo meu código em teste no caso de teste JUnit

Como faço para garantir em um caso de teste JUnit, que todos os threads gerados direta / indiretamente pelo método em teste são feitos com o trabalho, para que eu possa afirmar o resultado final? @Test public void testMethod() { Result result=method();// may spawn multiple threads to set result.value Assert.assertTrue(result.getValue()==4); //should execute only after result.value […]

java Volatile / synchronization on arraylist

Meu programa é assim: public class Main { private static ArrayList list; public static void main(String[] args) { new DataListener().start(); new DataUpdater().start(); } static class DataListener extends Thread { @Override public void run() { while(true){ //Reading the ArrayList and displaying the updated data Thread.sleep(5000); } } } static class DataUpdater extends Thread{ @Override public void […]

Leia a partir de vários arquivos e gravá-los em seqüenciamento de arquivos usando multithread

Eu quero ler de vários arquivos e gravá-los em um único arquivo usando multithread. Eu fiz algum código que está lendo conteúdo de arquivos perfeitamente bem e os escrevendo em outro arquivo. Mas meu problema é que os dados não estão chegando sequencialmente. Como ler f1 e escrever no arquivo de saída, leia f2 e […]

Imutabilidade e synchronization em Java

Desde que li o livro Java Concurrency in Practice, fiquei me perguntando como eu poderia usar a imutabilidade para simplificar os problemas de synchronization entre os threads. Eu entendo perfeitamente que um object imutável é seguro para threads . Seu estado não pode mudar após a boot, portanto, não pode haver “estados mutáveis ​​compartilhados”. Mas […]

Como terminar todos os outros threads em execução após qualquer um de um thread terminar

Problema: eu tenho coleção de threads começam em um loop parallelly. Depois de sair de qualquer um dos threads primeiro, todos os outros threads em execução devem ser terminados. Isso é o que eu tentei, mas não funciona. Qualquer ajuda é apreciada. public class ThreadsMain { public static void main(String[] args) { int SIZE = […]

thread safe LinkedHashMap sem Collections.synchronized

Eu estou usando um LinkedHashMap e o ambiente é multi threaded para que essa estrutura precise ser thread-safe. Durante events específicos, eu preciso ler todo o mapa push para db e limpar tudo. Na maioria das vezes, apenas as gravações acontecem nesse mapa. Este mapa tem um limite de 50 inputs. Estou usando o Oracle […]