我就已经在Linux并行线程执行的问题。

假设一个进程有5个线程。 现在怎么做调度看到这些线程(或犯规都看到)。 例如当调用调度程序,它只是计划的主要过程, 然后主处理到其每个螺纹之间时间表的其的责任。

或者是它的其他方式,即调度器调度的每个线程,就好像它是一个独立的进程。

有帮助吗?

解决方案

有关现代Linux(NPTL并行线程执行),则调度调度线程,线程被认为是一个“轻量级进程”。在pthread_create在的 clone 系统调用。

其他提示

Linux的调度的每个线程,就好像它是与范围所PTHREAD_SCOPE_SYSTEM的处理。 NPTL的实现可以利用多个CPU。

正如所述洛根,每个线程独立地进行调度。

然而,如果希望则可以使用Linux的过程控制组的线程调度组代替。

过程控制组使所述调度多一点低效的,但它可以更加公平。

的一种用途,已成为非常流行的是把所有的过程和由每个TTY创建的线程成每TTY对照组。这将导致所有用户的图形化应用程序被调度在同一水平作为他的24线程的内核编译,他在一个终端窗口中启动。图形应用程序获得50%和编译得到50%。如果他打开另一个终端窗口,开始编译的glibc与另一个24线,它转移到33%的桌面应用程序,33%内核编译和33%的glibc编译。

scroll top