操作系统调度程序是否会影响线程的执行方式

操作系统调度程序是否会影响线程的执行方式

我正在使用 pthread 库编写一个多线程应用程序,我使用 pthread_create 创建一个线程并运行 randomfunction创建线程的所有内容

应用程序的伪代码

pthread_t thread[10];

for(int i=0;i<10;i++)

{
   pthread_create(&thread[i], NULL, randomfunction, NULL)
}

由于某些未知的原因,线程不是同时运行,而是一个接一个地运行,就像 pthread 函数必须在执行另一个 pthread_create 之前执行 finish 一样。

我想知道 Ubuntu 操作系统调度程序是否可能影响线程的执行方式。

Ubuntu 操作系统调度程序是否可能导致线程仅在调用函数执行完成时运行而不是并发运行???

我在 VMWare Windows 7 上运行 Ubuntu 9.10

答案1

  1. 您需要在 VirtualBox 设置 | 系统 | 处理器中将处理器数量设置为多个
  2. 您还需要将 BIOS 设置为虚拟化(查看系统安全设置)。

这对我有用。

相关内容