Articles of multithreading

Os methods de inserção e remoção de LinkedBlockingQueue são seguros para thread?

Eu estou usando LinkedBlockingQueue entre dois segmentos diferentes. Um thread adiciona dados via add , enquanto o outro thread recebe dados via take . Minha pergunta é: preciso sincronizar o access para add e take . Os methods insert e remove de LinkedBlockingQueue são seguros para thread?

O que significa dizer que o Apache gera um thread por solicitação, mas node.js não?

Eu li sobre node.js e outros servidores, como o Apache, onde o threading é diferente. Eu simplesmente não entendo o que o encadeamento significa. Se eu tiver uma página da Web que execute o SQL para atingir um database, digamos, três bancos de dados diferentes na página lateral de um servidor, o que isso significa […]

Como dar prioridade ao thread privilegiado no bloqueio de mutex?

Primeiro de tudo: eu sou completamente um novato em programação mutex / multithread, então desculpe por qualquer erro com antecedência … Eu tenho um programa que executa vários segmentos. Os threads (geralmente um por núcleo cpu) fazem um monte de cálculo e “pensando” e, em seguida, às vezes, eles decidem chamar um método específico (compartilhado) […]

Como depurar um aplicativo multi-threaded no IntelliJ?

Estou tendo um problema estranho com vários segmentos e pontos de interrupção no IntelliJ IDEA 14.0.2. Código após o ponto de interrupção ser executado antes de parar nele. import java.util.concurrent.atomic.AtomicInteger; public class Main { private static final int NUM_CLIENTS = 1000; static class TestRunnable implements Runnable { AtomicInteger lock; @Override public void run() { synchronized […]

C ++ 11 Implementação do Spinlock usando

Eu implementei a class SpinLock, como segue struct Node { int number; std::atomic_bool latch; void add() { lock(); number++; unlock(); } void lock() { bool unlatched = false; while(!latch.compare_exchange_weak(unlatched, true, std::memory_order_acquire)); } void unlock() { latch.store(false , std::memory_order_release); } }; Implementei acima da class e fiz dois threads que chamam o método add () de […]

Há algum problema em ler um sinalizador booleano compartilhado sem bloqueá-lo quando outro thread pode configurá-lo (no máximo uma vez)?

Gostaria que meu thread fosse encerrado de forma mais elegante, por isso estou tentando implementar um mecanismo de sinalização simples. Eu não acho que eu quero um thread totalmente orientada a events, então eu tenho um trabalhador com um método para pará-lo com graça usando uma seção crítica Monitor (equivalente a um lock C # […]

Prioridade de redução de Task.Factory.StartNew thread

Um código como abaixo irá iniciar um novo thread para fazer o trabalho. Existe alguma maneira que eu possa controlar a prioridade desse segmento? Task.Factory.StartNew(() => { // everything here will be executed in a new thread. // I want to set the priority of this thread to BelowNormal });

Entrevista: Como garantir que um segmento seja executado após o outro?

Há thread T1 , T2 e T3 , como podemos garantir que o thread T2 executado após T1 e o thread T3 executado após T2 ? Esta pergunta foi feita na minha entrevista. Eu não respondi. Por favor explique em detalhes.

Como o Keep-alive funciona com o ThreadPoolExecutor?

Em continuação a uma pergunta postada por mim, estou tentando usar o ThreadPoolExecutor no meu codebase. Mesmo depois de repetidas tentativas de compreensão do documento da API Java, não consegui entender claramente a funcionalidade / finalidade por trás do parâmetro keepAliveTime a ser passada no construtor. Espero que alguém possa me explicar com um bom […]

Gerar um novo tópico para abrir uma nova janela e fechá-la de um segmento diferente

Agora eu tenho código c # para gerar uma nova janela em um segmento diferente, isso funciona, mas assim que a nova janela gerada é aberta, ele fecha e o segmento termina. Como eu faria isso para que a nova janela gerada pudesse ser fechada a partir do primeiro thread? Aqui está uma “tree” de […]