克隆(Linux)创建内核级线程,而PThreads创建用户级线程。 我觉得有些操作系统实际上并不支持用户级线程。举个例子: 在双核处理器上,如果我有2个正在运行的进程,其中第一个有3个线程而第二个有4个线程,则CPU的时隙不会被分成7个相等的插槽,每个插槽对应一个线程但是核心将被分配给进程1并在其3个线程之间共享,而另一个核心将被分配给进程2并在其4个线程之间共享。
如果我们使用clone(在Linux上)而不是PThreads。然后,双核处理器的时间将在不同的内核线程(7)上平均共享。
这是真的吗?
答案 0 :(得分:1)
以下是今天最常用的NPTL library的说明:
NPTL是一个所谓的1×1线程库,在那个线程中创建 用户(通过pthread_create()库函数)在1-1中 与内核中可调度实体的对应关系(任务,在 Linux案例)。这是最简单的线程实现。
如果它们是内核的可调度实体,那么它们可以在任何处理器上单独调度,并且您的陈述不正确。