Articles of simultaneidade

Como resolver a declaração “Double-Checked Locking is Broken” em Java?

Eu quero implementar a boot lenta para multithreading em Java. Eu tenho algum código do tipo: class Foo { private Helper helper = null; public Helper getHelper() { if (helper == null) { Helper h; synchronized(this) { h = helper; if (h == null) synchronized (this) { h = new Helper(); } // release inner […]

Por que usar um ReentrantLock se alguém pode usar sincronizado (isso)?

Eu estou tentando entender o que torna o bloqueio em simultaneidade tão importante se alguém pode usar synchronized (this) . No código fictício abaixo, posso fazer o seguinte: sincronizou todo o método ou sincronizou a área vulnerável (sincronizada (isto) {…}) OU bloqueie a área de código vulnerável com um ReentrantLock. Código: private final ReentrantLock lock […]

A GUI do swing Java congela

Eu estou escrevendo um aplicativo de GUI cliente / servidor Java usando sockets e aqui está o problema: Eu tenho um botão para começar a ouvir uma porta específica: botão actionPerformed method private void listenButtonActionPerformed(java.awt.event.ActionEvent evt) { int port = Integer.parseInt(portTextfield.getText(), 10); try { socket.listen(port); } catch (IOException ex) { } } Aqui está o […]

Instruções SSE: quais CPUs podem fazer operações de memory atômica de 16B?

Considere uma única instrução SSE de access à memory (uma única leitura ou gravação única, não leitura + gravação) em uma CPU x86. A instrução está acessando 16 bytes (128 bits) de memory e a localização da memory acessada é alinhada a 16 bytes. O documento “Artigo sobre pedido de memory de arquitetura Intel® 64” […]

Trata-se de um pool de threads de trabalho idiomático no Go?

Eu estou tentando escrever um simples pool de trabalho com goroutines. O código que escrevi é idiomático? Se não, então o que deve mudar? Eu quero ser capaz de definir o número máximo de segmentos de trabalho para 5 e bloquear até que um trabalhador se torne disponível se todos os 5 estiverem ocupados. Como […]

Como faço para simular um dispositivo periférico em buffer com o SwingWorker?

Eu estou usando este exercício como uma ferramenta pedagógica para me ajudar a gravar em alguns conceitos de programação GUI Java. O que estou procurando é um entendimento geral, em vez de uma solução detalhada para um problema específico. Espero que codificar esse “certo” me ensine muito sobre como abordar futuros problemas de multiencadeamento. Se […]

As variables ​​estáticas são compartilhadas entre os threads?

Meu professor em uma class java de nível superior na segmentação disse algo que eu não tinha certeza. Ele afirmou que o código a seguir não necessariamente atualizaria a variável ready . De acordo com ele, os dois threads não necessariamente compartilham a variável estática, especificamente no caso de cada thread (thread principal versus ReaderThread) […]

Volátil booleano vs AtomicBoolean

O que o AtomicBoolean faz que um booleano volátil não pode alcançar?

Como fazer o bloco de método submit () do ThreadPoolExecutor se ele estiver saturado?

Eu quero criar um ThreadPoolExecutor tal que quando ele atingiu seu tamanho máximo e a fila está cheia, o método submit() bloqueia ao tentar adicionar novas tarefas. Preciso implementar um RejectedExecutionHandler personalizado para isso ou existe uma maneira existente de fazer isso usando uma biblioteca Java padrão?

Nenhuma saída de goroutine em Go

Enquanto SayHello() executado como esperado, o goroutine não imprime nada. package main import “fmt” func SayHello() { for i := 0; i < 10 ; i++ { fmt.Print(i, " ") } } func main() { SayHello() go SayHello() }