Articles of multithreading

Java .parallelStream () com methods com annotations de mola

Eu tente usar o parallelStream() no DAO com annotations Spring @Transactional e obter assim problema: @Transactional public void processCollection(Collection objects) { objects.parallelStream() .forEach(this::processOne); //throw exception } @Transactional public void processOne(Object o) { … } Funciona correto: @Transactional public void processCollection(Collection objects) { objects.stream() .forEach(this::processOne); //work correctly } @Transactional public void processOne(Object o) { … } […]

Como o thread pode ser executado após o fechamento do método principal?

Aqui estão minhas duas classs: public class Firstclass { public static void main(String args[]) throws InterruptedException { System.out.println(“Main start….”); Secondclass t1 = new Secondclass(); t1.setName(“First Thread”); Secondclass t2 = new Secondclass(); t2.setName(“Second Thread”); t1.start(); t2.start(); System.out.println(“Main close…”); } } e public class Secondclass extends Thread { @Override public void run() { try { loop(); } […]

Diferença entre multithreading com e sem Executor

Eu estou tentando descobrir sobre a diferença de desempenho entre multithreading normal e multithreading usando executor (para manter um pool de segmentos). Os abaixo são exemplos de código para ambos. Sem código executor (com multithreading): import java.lang.management.ManagementFactory; import java.lang.management.MemoryPoolMXBean; import java.lang.management.MemoryUsage; import java.lang.management.ThreadMXBean; import java.util.List; public class Demo1 { public static void main(String arg[]) { […]

Scanner (System.in) – como cancelar / pular a espera de input

Eu só estou querendo saber como controlar as inputs do console em segmentos separados? Eu tenho o segmento A e o encadeamento B e o encadeamento C; B e C ambos controlam a input do usuário … a coisa é que eu não tenho certeza como alternar entre threads B e C o scanIn.nextLine(); porque […]

Gravações fora de ordem para bloqueio com verificação dupla

Nos exemplos mencionados para gravações fora de ordem para cenários de bloqueio com verificação dupla (ref: artigo da IBM e artigo da Wikipedia ) Eu não conseguia entender a razão simples de porque o Thread1 sairia do bloco sincronizado antes que o construtor fosse totalmente inicializado. De acordo com o meu entendimento, a criação de […]

Executando várias transactions JPA em paralelo

Eu tenho dois (ou mais) Threads Java criando, atualizando e excluindo entidades de um database mysql usando JPA. Para conseguir isso eu tenho uma class PersistenceLayer criando o EntityManager e fornecendo salvar, atualizar e excluir methods para todas as minhas entidades parecidas com: public void saveEntity(Entity entity) { manager.getTransaction().begin(); manager.persist(entity); manager.getTransaction().commit(); } public void saveEntity2(Entity2 […]

Pool de threads de serviço do executor Java

Se eu criar um conjunto de encadeamentos de tamanho fixo com 10 encadeamentos em java usando a estrutura Executor: private final ExecutorService pool; pool = Executors.newFixedThreadPool(10); e tente enviar mais de 10 tarefas (digamos, por exemplo, 12 tarefas); for (int i = 0 ; i < 12 ; i++) { pool.execute(new Handler(myRunnable)); } O que […]

Forçando um despertar espúrio em Java

Esta questão não é sobre, se wakeups espúrios realmente feliz, porque isso já foi discutido em toda a extensão aqui: Acordos espúrios realmente acontecem? Portanto, isso também não é sobre, porque eu tenho que colocar um loop em torno de minha declaração de wait . O que é isto: Eu gostaria de construir um caso […]

Consumidor Kafka – qual é a relação de processos de consumo e threads com partições de tópicos

Eu tenho trabalhado com Kafka ultimamente e tenho um pouco de confusão sobre os consumidores em um grupo de consumidores. O centro da confusão é se implementar os consumidores como processos ou threads. Para essa pergunta, suponha que eu esteja usando o consumidor de alto nível. Vamos considerar um cenário que eu experimentei. No meu […]

Em Java, preciso declarar minha coleção como sincronizada se for somente leitura?

Eu preencho uma coleção uma única vez quando meu webapp do J2EE é iniciado. Então, vários segmentos podem acessá-lo ao mesmo tempo, mas apenas para lê-lo. Eu sei que o uso de uma coleção sincronizada é obrigatório para paralelos de escrita, mas eu ainda preciso dela para ler paralelos?