从这个答案 - software threads vs hardware threads,软件线程是由操作系统管理的线程。但我还学到了另一个术语,称为用户线程,它是不是内核线程的线程,即操作系统不会知道这些线程。那么软件线程包括用户线程吗?
我没有从 stackoverflow 得到任何答案,但我认为这个想法在 Linux 的上下文中是相同的,我问的是 Linux 中使用的术语,谢谢。
作为参考,我在 Quora 上找到了一个有用的资源。
从这个答案 - software threads vs hardware threads,软件线程是由操作系统管理的线程。但我还学到了另一个术语,称为用户线程,它是不是内核线程的线程,即操作系统不会知道这些线程。那么软件线程包括用户线程吗?
我没有从 stackoverflow 得到任何答案,但我认为这个想法在 Linux 的上下文中是相同的,我问的是 Linux 中使用的术语,谢谢。
作为参考,我在 Quora 上找到了一个有用的资源。
这是一个术语往往超载的领域——根据上下文,使用相同的术语具有不同的含义。与各种术语相关联的含义随时间变化的事实无济于事,因此您正在阅读的文本的年龄很重要。
有许多方面可以区分,或者至少有两个主要方面。
ps
,您会看到它们是名称在方括号中的进程,例如[kthreadd]
,[khugepaged]
...)。您所指的“用户线程”通常称为green threads。它们是在用户空间中管理的软件线程,不涉及内核。与在内核和用户空间中实现的许多概念一样,它们的使用随着成本观念的变化而随着时间的推移而演变:过去,在其他操作系统上,内核没有很好地支持线程,因此实现了它们在用户空间;然后内核得到改进,软件开始使用内核线程;然后新环境认为内核线程太昂贵了,所以就这样了。
为了回答您的问题,由于用户线程是软件线程,因此术语“软件线程”包括它们。