Articles of multithreading

a atribuição de referência é atômica, então por que o Interlocked.Exchange (ref Object, Object) é necessário?

No meu serviço da web asmx multithreaded eu tinha um campo de class _allData do meu próprio tipo SystemData que consiste em alguns List e Dictionary marcado como volatile . Os dados do sistema ( _allData ) são atualizados de vez em quando e eu faço isso criando outro object chamado newData e preencha suas […]

Escolha entre o envio de ExecutorService e o de ExecutorService

Como devo escolher entre o envio ou execução do ExecutorService , se o valor retornado não é da minha conta? Se eu testar os dois, não vi diferenças entre os dois, exceto o valor retornado. ExecutorService threadExecutor = Executors.newSingleThreadExecutor(); threadExecutor.execute(new Task()); ExecutorService threadExecutor = Executors.newSingleThreadExecutor(); threadExecutor.submit(new Task());

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 o meu ArrayList Thread-Safe? Outra abordagem para o problema em Java?

Eu tenho um ArrayList que eu quero usar para manter os objects RaceCar que estendem a class Thread assim que eles terminam de executar. Uma class, chamada Race, manipula essa ArrayList usando um método de retorno de chamada que o object RaceCar chama quando a execução é concluída. O método de retorno de chamada, addFinisher […]

Quais operações são atômicas em c #?

Existe uma maneira sistemática de saber se uma operação em C # será atômica ou não? Ou existem diretrizes gerais ou regras práticas?

Quicksort multithreaded ou mergesort

Como posso implementar um algoritmo de quicksort ou mergesort concorrente para Java? Nós tivemos problemas em um Mac de 16 (virtuais) onde apenas um núcleo (!) Estava trabalhando usando o algoritmo padrão de sorting Java e não era bom ver que uma máquina muito boa fosse completamente subutilizada. Então nós escrevemos o nosso próprio (eu […]

Versão c # da palavra-chave sincronizada do java?

O c # tem sua própria versão da palavra-chave “sincronizada” do java? Ou seja, em java pode ser especificado para uma function, um object ou um bloco de código, da seguinte forma: public synchronized void doImportantStuff() { // dangerous code goes here. } ou public void doImportantStuff() { // trivial stuff synchronized(someLock) { // dangerous […]

Java: Como dimensionar encadeamentos de acordo com núcleos de cpu?

Eu não sou um bom programador de java, é apenas o meu hobby, mas estou ansioso para saber mais do que a média das coisas. Eu quero resolver um problema matemático com vários segmentos em java. meu problema de matemática pode ser separado em unidades de trabalho, que eu quero ter resolvido em vários segmentos. […]

Por que deve esperar () sempre ser chamado dentro de um loop

Eu li que devemos sempre chamar um wait() de dentro de um loop: while (!condition) { obj.wait(); } Funciona bem sem um loop então por que isso?

Escrevendo para um TextBox de outro segmento?

Eu não consigo descobrir como fazer um aplicativo de formulário C # Windows gravar em uma checkbox de texto de um segmento. Por exemplo, no Program.cs, temos o padrão main () que desenha o formulário: static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } Então nós temos no Form1.cs: public Form1() { InitializeComponent(); new Thread(SampleFunction).Start(); […]