内核不能意识到线程的存在吗?

内核不能意识到线程的存在吗?

阅读 3.5k
1 个回答

取决于你的线程库。
内核态线程库创建的线程,内核当然是可以意识到。这类线程,在内核中和进程是一样的,或者严格地说,大致差不多,因为表征它们的数据结构是一样的。用fork创建进程,用clone创建线程,也会导致进程和线程的一些不一致。但内核肯定是能意识到的。
用户态线程创建的线程,内核意识不到。但也要看你所说的“意识不到”是什么意思。理论上来说,只要进出内核空间,内核就能意识到,如果从这个层面上说,用户态线程肯定也要进出内核空间的,但是只不过不是调用clone这类本身为线程设计的接口,我们不认为它是被内核意识到的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进