Articles of multithreading

compreensão de pthread_cond_wait () e pthread_cond_signal ()

De um modo geral, pthread_cond_wait() e pthread_cond_signal() são chamados como abaixo: //thread 1: pthread_mutex_lock(&mutex); pthread_cond_wait(&cond, &mutex); do_something() pthread_mutex_unlock(&mutex); //thread 2: pthread_mutex_lock(&mutex); pthread_cond_signal(&cond); pthread_mutex_unlock(&mutex); Os passos são pthread_cond_wait(&cond, &mutex); é chamado, desbloqueia o mutex O thread 2 bloqueia o mutex e chama pthread_cond_signal() , que desbloqueia o mutex No encadeamento 1, pthread_cond_wait() é chamado e bloqueia […]

Distinguindo entre encadeamentos Java e encadeamentos do SO?

Como faço para distinguir os encadeamentos Java em execução e os encadeamentos nativos? No Linux, haverá o processo pai para cada processo filho, e eles dizem que 0 é o pai de todo o processo, haverá um thread pai de todos os threads Java bifurcados? Como sei qual encadeamento Java está relacionado ao encadeamento OS […]

Diferença entre estados de thread WAIT e BLOCKED

Qual é a diferença entre o estado de thread WAIT e o estado de thread BLOCKED? A documentação do Thread.State : Bloqueado Um encadeamento bloqueado aguardando um bloqueio de monitor está nesse estado. Esperando Um encadeamento que está aguardando indefinidamente que outro encadeamento execute uma determinada ação está nesse estado não explica a diferença para […]

É possível determinar o segmento segurando um mutex?

Primeiramente, eu uso a biblioteca pthread para escrever o programa C multithreading. Fios sempre pendurados por seus mutexs esperados. Quando eu uso o utilitário strace para encontrar um segmento está no status FUTEX_WAIT , eu quero saber qual thread manter esse mutex no momento. Mas eu não sei como eu poderia fazer isso. Existe algum […]

Casos de Uso dos Agendadores rxJava

No RxJava existem 5 agendadores diferentes para escolher: immediate () : Cria e retorna um Agendador que executa o trabalho imediatamente no thread atual. trampoline () : Cria e retorna um Agendador que enfileira o trabalho no thread atual a ser executado após a conclusão do trabalho atual. newThread () : Cria e retorna um […]

IO assíncrona em Scala com futuros

Digamos que eu esteja obtendo uma lista (potencialmente grande) de imagens para baixar de alguns URLs. Estou usando o Scala, então o que eu faria seria: import scala.actors.Futures._ // Retrieve URLs from somewhere val urls: List[String] = … // Download image (blocking operation) val fimages: List[Future[…]] = urls.map (url => future { download url }) […]

Gere Múltiplos Threads para o trabalho e espere até que todos terminem

Só quero alguns conselhos sobre “melhores práticas” sobre tarefas multi-threading. Como exemplo, temos um aplicativo C # que, após a boot, lê dados de várias tabelas de “tipos” em nosso database e armazena as informações em uma coleção que passamos pelo aplicativo. isso nos impede de atingir o database toda vez que essa informação é […]

Referência Multithreading?

Eu estou perguntando sobre uma boa referência para programação multithreading em termos de conceitos com bons exemplos usando C ++ / C #?

Impossível criar um pool de threads em cache com um limite de tamanho?

Parece impossível criar um conjunto de encadeamentos em cache com um limite para o número de encadeamentos que ele pode criar. Aqui está como o Executors.newCachedThreadPool estático é implementado na biblioteca Java padrão: public static ExecutorService newCachedThreadPool() { return new ThreadPoolExecutor(0, Integer.MAX_VALUE, 60L, TimeUnit.SECONDS, new SynchronousQueue()); } Portanto, usando esse modelo para criar um conjunto […]

O que é mutex e semáforo em Java? Qual é a principal diferença?

O que é mutex e semáforo em Java? Qual é a principal diferença?