首页 > 解决方案 > pthread.h - 自愿 CPU 是否是调度另一个用户级线程的唯一触发器?

问题描述

CPU自愿让出是linux pthread库中线程可以在同一进程下调度另一个线程的唯一方法吗?(因为 pthread 是用户级线程实现?)

似乎 pthread_yield() 和互斥锁(由 pthread 库提供)是调用调度程序以开始另一个线程执行的唯一方法。真的吗 ?

标签: linuxmultithreadingpthreads

解决方案


不,任何也阻塞当前线程的调用都会安排另一个线程。这包括库调用,例如 sleep()、read()、select()、pthread_mutex_lock() 和许多其他函数。

请注意,pthread 不是 linux 上的纯用户级线程实现,它将 1 个用户模式线程映射到 1 个内核任务。


推荐阅读