系统线程与非系统线程

时间:2017-03-06 20:54:29

标签: multithreading

我注意到它常常出现在表达式中:"系统线程"。这事实意味着什么?特别是,我无法想象 - 系统线程。只是,系统必须知道线程。操作系统(调度程序)切换上下文,以便他必须知道它!

例如,在第四页上,它是关于系统线程的: http://www.dabeaz.com/python/GIL.pdf

3 个答案:

答案 0 :(得分:0)

系统线程是OS提供的东西。 OS内核负责调度系统线程。如果您的运行时提供类似线程和调度程序的东西,那么您就拥有非系统线程。这些通常被称为绿色线程。有时非系统线程更有效,或者系统不提供线程。对于Python,非系统线程的示例将由greenleteventlet提供。

答案 1 :(得分:0)

线程是操作系统的一个构造,它本身只是一个程序,所以如果他们想要的话,可以在操作系统之上的另一个程序中实现线程调度程序(通常它们不会重新发明轮子)。相关组件可能包括一些中断机制,一个内存管理器(虚拟化内存分配),以及每个线程的指令指针优先级队列。

答案 2 :(得分:0)

绿色线程,事件循环,协作式多任务处理和协同程序的概念通常是非系统线程的含义。
它本质上是指构造程序的方式,以便不是阻止线程执行IO这样的操作,而是允许线程被另一个任务使用。
当我们停放本机线程时,操作系统可以安排另一个线程来使用该CPU。通过协作式多任务处理方法,还可以让应用程序选择接下来要执行的任务。