linux - pthread.h - 自愿 CPU 是否是调度另一个用户级线程的唯一触发器?
问题描述
CPU自愿让出是linux pthread库中线程可以在同一进程下调度另一个线程的唯一方法吗?(因为 pthread 是用户级线程实现?)
似乎 pthread_yield() 和互斥锁(由 pthread 库提供)是调用调度程序以开始另一个线程执行的唯一方法。真的吗 ?
解决方案
不,任何也阻塞当前线程的调用都会安排另一个线程。这包括库调用,例如 sleep()、read()、select()、pthread_mutex_lock() 和许多其他函数。
请注意,pthread 不是 linux 上的纯用户级线程实现,它将 1 个用户模式线程映射到 1 个内核任务。
推荐阅读
- flutter - 我需要有关如何保存我的应用状态的指南
- python - 在 Anaconda 上安装 xgboost 时遇到问题
- azure - 当设备在未在 IoT Hub 中注册的情况下发送遥测消息时,IoT Hub 的行为是什么?
- perforce - Perforce 命令在特定仓库路径中查找新添加的文件
- django - Django如何注释计数嵌套的forloop查询集字典
- sql-server - 分组和求和,使用非聚合标准来确定字段选择
- r - 如何在 R 中的同一图上绘制元组层?
- bash - 如何从 bash 脚本中将 stdout 和 stderr 重定向到文件?
- tbb-flow-graph - 如何使用 tbb::parallel_for 和 tbb::dataflow 并行化我的处理?
- javascript - Javascript 文本框 1 可以输入