我可以通过一个例子更好地解释这个问题,所以我正在使用它吗?
假设我们的系统是Round-Robin预定系统,每个执行时间间隔为10ms。如果我们在程序中创建两个线程,每个线程是执行10ms还是两者都在并发执行10ms?
如果它们组合10ms然后谁管理线程之间的上下文切换?
注意:我不是在讨论内核线程。
答案 0 :(得分:0)
在Linux中,线程与系统中的每个其他线程竞争CPU。在POSIX术语中,线程具有系统争用范围。
因此,对于您的示例,每个线程将获得10毫秒。
您可以通过以下方式查看:
pthread_attr_setscope
)设置为PTHREAD_SCOPE_PROCESS
- 会导致错误。pthread_getattr_np
获取一个帖子attrbutes,并通过pthread_attr_getscope
进行检查
争用范围为PTHREAD_SCOPE_SYSTEM
答案 1 :(得分:0)
是的他们也有时间片。
在linux中,线程vye用于内存,CPU等资源或正在等待发生一些I / O事件。这些线程经历各种状态,如空闲,活动,准备,具体取决于资源的可用性。这一切都由“流程管理子系统”负责,流程管理子系统由流程计划组成,并管理流程执行及其状态。 人们还可以操纵进程可以保存资源(如CPU)的时间段。 或者可以改变进程的优先级(例如“好”)。
-Sumeet