Articles of concurrency de

Por que java.util.concurrent.ArrayBlockingQueue usa loops ‘while’ em vez de ‘if’ em torno de chamadas para await ()?

Eu tenho jogado com minha própria versão disso, usando ‘if’, e tudo parece estar funcionando bem. É claro que isso irá quebrar horrivelmente se signalAll () for usado em vez de signal (), mas se apenas um thread de cada vez for notificado, como isso pode dar errado? Seu código aqui – confira os methods […]

Por que Thread.isInterrupted () sempre retorna false?

Eu encontrei o método do JavaDoc: Retorna: true se este segmento foi interrompido; false caso contrário. Eu acho que algo de errado com o meu entendimento do método. Além disso, posso interpretar mal o conceito de ‘interrupção’ em Thread. Qualquer explicação é bem vinda! Obrigado! Fragmento de código: Na definição de thread: public void run() […]

Barreiras de memory e estilo de codificação em uma VM Java

Suponha que eu tenha um object complexo estático que seja periodicamente atualizado por um pool de threads, e leia mais ou menos continuamente em um thread de longa duração. O object em si é sempre imutável e reflete o estado mais recente de algo. class Foo() { int a, b; } static Foo theFoo; void […]

Java ReentrantReadWriteLocks – como adquirir com segurança o bloqueio de gravação?

Eu estou usando no meu código no momento em que um ReentrantReadWriteLock para sincronizar o access através de uma estrutura de tree. Essa estrutura é grande e lida por muitos threads de uma só vez, com modificações ocasionais em pequenas partes dela – assim, parece caber bem a linguagem read-write. Entendo que com essa class […]

Qual algoritmo de sorting paralela tem o melhor desempenho médio de caso?

A sorting leva O (n log n) no caso de série. Se tivermos processadores O (n), esperamos uma aceleração linear. O (log n) algoritmos paralelos existem, mas eles têm uma constante muito alta. Eles também não são aplicáveis ​​em hardware de commodity que não tem nenhum processador O (n) próximo. Com processadores p, algoritmos razoáveis […]

É volátil caro?

Depois de ler o JSR-133 Cookbook para Compiler Writers sobre a implementação do volátil, especialmente a seção “Interações com instruções atômicas”, presumo que ler uma variável volátil sem atualizá-la precisa de uma barreira LoadLoad ou LoadStore. Mais abaixo na página, vejo que LoadLoad e LoadStore estão efetivamente sem operação em CPUs X86. Isso significa que […]

Como faço para implementar a priorização de tarefas usando um ExecutorService no Java 5?

Estou implementando um mecanismo de agrupamento de encadeamentos no qual gostaria de executar tarefas de prioridades variables. Gostaria de ter um bom mecanismo pelo qual eu possa enviar uma tarefa de alta prioridade para o serviço e que ela seja agendada antes de outras tarefas. A prioridade da tarefa é uma propriedade intrínseca da tarefa […]

O servlet parece lidar com várias solicitações simultâneas de navegador de forma síncrona

Tanto quanto eu sei Java Servlets estão lidando com várias solicitações ao mesmo tempo e eu pesquisei através StackOverflow, bem como o Google, e confirmou o que eu pensava. No entanto estou bastante confuso agora, eu escrevi um servlets simples que parecem mostrar comportamento de bloqueio. então eu tenho um servlet simples: public class MyServlet […]

Quando você chamaria o thread.run () de java em vez de thread.start ()?

Quando você chamaria thread.run() Java em vez de thread.start() ?

Por que o i ++ não é atômico?

Por que o i++ não é atômico em Java? Para me aprofundar um pouco mais em Java, tentei contar com que frequência o loop nos threads é executado. Então eu usei um private static int total = 0; na class principal. Eu tenho dois tópicos. Tópico 1: Imprime System.out.println(“Hello from Thread 1!”); Tópico 2: Imprime […]