Python线程模块创建用户空间线程或内核spece线程

时间:2017-09-14 07:11:11

标签: python

我试图在Python中使用threading模块。现在我有关于该模块支持的线程类型的查询。这就是这些线程是用户空间线程还是内核空间线程

2 个答案:

答案 0 :(得分:1)

正确的术语不是内核空间线程(因为Python无权访问内核内存空间),而是内核级线程threading模块使用系统提供的机制(例如POSIX系统上的pthread),这些机制通常依赖于内核接口(在Linux上通过clone(CLONE_THREAD)创建任务)。

Python支持用户级线程(那些纯粹在解释器中实现并且只占用一个内核级线程的线程)通过生成器,greenlet和类似的库。

答案 1 :(得分:0)

简短回答用户空间线程。 根据我对系统的了解,过程(或线程)不是用户级别或内核级别。

用户无法直接访问某些关键任务,例如内存和IO。要使用这些resources,内核将公开API's。 这些API更好地称为system calls。 因此,您的主题可能会在您的程序中使用system calls。但是你不能只生成内核线程