linux——线程相关函数

张开发
2026/6/7 13:05:05 15 分钟阅读
linux——线程相关函数
1、线程分离--pthread_detach函数原型int pthread_detach(pthread_t thread); 调用该函数之后不需要 pthread_join关键细节分离后的子线程执行完毕后会自动回收自身 PCB 资源避免内存泄漏。一旦设置分离后续无法再用 pthread_join 等待该线程否则会报错。适用场景不需要获取子线程退出状态只想让子线程后台运行、自动清理。2、杀死取消线程--pthread_cancel函数原型 int pthread_cancel(pthread_t pthread);核心作用主动取消杀死指定的线程强制终止其执行。使用注意事项取消线程的前提被取消的子线程其执行函数内部必须有 “取消点”。天然取消点常见系统调用write、read、printf、sleep 等执行到这些函数时会检测是否有取消请求。手动设置取消点若子线程函数内只有纯计算如int a2; int ba3;无系统调用需手动添加pthread_testcancel();否则无法取消线程。取消后效果线程被取消后资源需配合 pthread_join 或 pthread_detach 回收。3、比较两个线程ID是否相等预留函数 --pthread_equal函数原型 int pthread_equal(pthread_t t1,pthread_t t2);核心作用判断两个线程 IDt1 和 t2是否属于同一个线程预留常用函数。关键细节返回值相等返回非 0不相等返回 0与常规 “相等返回 1、不等返回 0” 略有区别注意记忆。适用场景多线程编程中需判断当前操作的线程是否为目标线程时使用避免直接用比较适配不同系统的线程 ID 实现。

更多文章