- Você precisa definir o número de processadores para mais de um nas configurações do VirtualBox | Sistema | Processador
- Você também precisa definir o BIOS para a Virtualização (veja em Configurações de segurança do sistema).
Isso funcionou para mim.
Estou codificando um aplicativo multi-thread usando a biblioteca pthread, eu crio um thread usando pthread_create e executo randomfunction
tudo que um thread é criado
Psedo-code of application
pthread_t thread[10];
for(int i=0;i<10;i++)
{
pthread_create(&thread[i], NULL, randomfunction, NULL)
}
Por alguma razão desconhecida, os threads não estão rodando concorrentemente, mas rodando um após o outro, é como se a função pthread tivesse que executar o acabamento antes que outro pthread_create fosse executado.
Eu estou querendo saber se é possível que o Scheduler do sistema operacional Ubuntu esteja afetando a maneira como os threads estão sendo executados.
É possível que o Scheduler do sistema operacional Ubuntu esteja fazendo com que os encadeamentos sejam executados apenas quando a função de chamada tiver terminado de executar, em vez de simultaneamente?
Estou executando o Ubuntu 9.10 no VMWare Windows 7
Isso funcionou para mim.