我试图在Python中使用threading
模块。现在我有关于该模块支持的线程类型的查询。这就是这些线程是用户空间线程还是内核空间线程
答案 0 :(得分:1)
正确的术语不是内核空间线程(因为Python无权访问内核内存空间),而是内核级线程。 threading
模块使用系统提供的机制(例如POSIX系统上的pthread
),这些机制通常依赖于内核接口(在Linux上通过clone(CLONE_THREAD)
创建任务)。
Python支持用户级线程(那些纯粹在解释器中实现并且只占用一个内核级线程的线程)通过生成器,greenlet和类似的库。
答案 1 :(得分:0)
简短回答用户空间线程。 根据我对系统的了解,过程(或线程)不是用户级别或内核级别。
用户无法直接访问某些关键任务,例如内存和IO。要使用这些resources
,内核将公开API's
。
这些API更好地称为system calls
。
因此,您的主题可能会在您的程序中使用system calls
。但是你不能只生成内核线程