linux - pthread.h - 自愿 CPU 让出是调度另一个用户级线程的唯一触发器吗?

标签 linux multithreading pthreads

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

似乎 pthread_yield() 和互斥体(由 pthread 库提供)是调用调度程序来启动另一个线程执行的唯一方法。这是真的吗?

最佳答案

不,任何也会阻塞当前线程的调用都会调度另一个线程。这包括 sleep()、read()、select()、pthread_mutex_lock() 等库调用等。

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

关于linux - pthread.h - 自愿 CPU 让出是调度另一个用户级线程的唯一触发器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52246752/

相关文章:

c - pthread取消激活时间

java - 如何在 Linux 中测量特定端口的传输速度? (每秒位)

linux - 本地和 Hadoop 文件之间的差异

linux - 无法从目录中删除文件

python - 如何删除使用 tempfile.mkdtemp 创建的目录?

c# - 当一个线程调用 WaitOne 时,如何找到发回信号的其他线程?

c# - SQLiteConnection.BeginTransaction 是否在数据库锁定时重试?

java - 多线程环境下如何避免同步?

统计Linux内核线程在CPU上执行的次数

linux - Linux 中进程的线程调度