Articles of multithreading

Qual é a diferença entre tarefa e thread?

No c # 4.0, temos Task no namespace System.Threading.Tasks . Qual é a verdadeira diferença entre Thread e Task ? Eu fiz um programa de exemplo (ajuda tirada do MSDN) para o meu próprio bem de aprender com Parallel.Invoke Parallel.For Parallel.ForEach mas tenho muitas dúvidas pois a ideia não é tão clara. Eu procurei inicialmente […]

Como devo testar o código segmentado?

Até agora, evitei o pesadelo que está testando o código multi-thread, já que parece um campo minado demais. Gostaria de perguntar como as pessoas testaram código que depende de threads para execução bem-sucedida, ou apenas como as pessoas testaram esses tipos de problemas que só aparecem quando dois segmentos interagem de uma determinada maneira? Este […]

Diferença entre volátil e sincronizado em Java

Eu estou querendo saber a diferença entre declarar uma variável como volatile e sempre acessando a variável em um bloco synchronized(this) em Java? De acordo com este artigo http://www.javamex.com/tutorials/synchronization_volatile.shtml, há muito a ser dito e existem muitas diferenças, mas também algumas semelhanças. Estou particularmente interessado nesta informação: … o access a uma variável volátil nunca […]

Como executar um functor ou um lambda em um determinado thread no estilo Qt, GCD?

Em ObjC com o GCD, existe uma maneira de executar um lambda em qualquer um dos threads que giram um loop de events. Por exemplo: dispatch_sync(dispatch_get_main_queue(), ^{ /* do sth */ }); ou: dispatch_async(dispatch_get_main_queue(), ^{ /* do sth */ }); Ele executa algo (equivalente a []{ /* do sth */ } em C ++) na […]

É seguro usar uma instância java.sql.Connection estática em um sistema multithread?

Estou executando um aplicativo da web no Tomcat. Eu tenho uma class que lida com todas as consultas do database. Esta class contém o object Connection e os methods que retornam os resultados da consulta. Este é o object de conexão: private static Connection conn = null; Tem apenas uma instância (singleton). Além disso, tenho […]

O que significa “sincronizado”?

Tenho algumas dúvidas sobre o uso e o significado da palavra synchronized chave synchronized . Qual é o significado da palavra synchronized chave synchronized ? Quando os methods devem ser synchronized ? O que significa programaticamente e logicamente?

Número máximo de encadeamentos por processo no Linux?

Qual é o número máximo de encadeamentos que podem ser criados por um processo no Linux? Como (se possível) este valor pode ser modificado?

Existe uma vantagem em usar um Método Sincronizado em vez de um Bloco Sincronizado?

Alguém pode me dizer a vantagem do método sincronizado sobre o bloco sincronizado com um exemplo?

Você poderia explicar STA e MTA?

Você pode explicar STA e MTA com suas próprias palavras? Além disso, quais são os segmentos de apartamentos e eles pertencem apenas ao COM? Se sim, porque?

Como esperar que todos os tópicos terminem usando o ExecutorService?

Eu preciso executar uma quantidade de tarefas 4 de cada vez, algo assim: ExecutorService taskExecutor = Executors.newFixedThreadPool(4); while(…) { taskExecutor.execute(new MyTask()); } //…wait for completion somehow Como posso ser notificado quando todos estiverem concluídos? Por enquanto, não consigo pensar em nada melhor do que configurar um contador de tarefas globais e diminuí-lo no final de […]