文章插图
主线程把子线程谋杀了 , 只能取消同一个进程中的线程 , 还可以根据count的值看出 , 每个线程有自己独立的PCB , 在PCB中存在自己的栈区 。
线程等待线程等待的原因:
- 已经退出的线程 , 其空间没有被释放 , 仍然在进程的地址空间内 。
- 创建新的线程不会复用刚才退出线程的地址空间 。
文章插图
pthread_join函数会阻塞主线程 , 只有等待线程执行完毕线程处理函数之后 , 才会继续执行主进程 。
总结:
- 如果thread线程通过return返回 , retval所指向的单元里存放的是thread线程函数的返回值 。
- 如果thread线程被别的线程调用pthread_ cancel异常终掉 , retval所指向的单元里存放的是常数PTHREAD_CANCELED(-1) 。
- 如果thread线程是自己调用pthread_exit终止的 , retval所指向的单元存放的是传给pthread_exit的参数 。
- 如果对thread线程的终止状态不感兴趣 , 可以传NULL给retval参数 。
- 一般情况下 , 线程终止后 , 其终止状态会一直保留到其他线程调用pthread_join获取它的状态为止 。但是线程也可以被设置成detach状态 , 这样的线程一旦中止就立刻回收它占有的所有资源 , 而不保留终止状态 。
- 不能对一个已经处于detach状态的线程调用pthread_join , 这样的调用将返回EINVAL错误 。也就是说 , 如果已经对一个线程调用了pthread_detach就不能再调用pthread_join了 。
经验总结扩展阅读
- 知天命是多少岁 古代年龄称谓
- 正常家庭一天用多少度电
- B站寂寞是什么意思
- 普通人直播带货能赚多少钱
- 2023双十一天猫消费券可以领几次 双十一天猫消费券怎么领取
- 2023淘宝双十一和双十二活动一样吗 双十一和双十二哪个优惠力度大
- 2023淘宝双十一活动力度大吗 淘宝双十一购物攻略有哪些
- 蒸双臭是什么食物
- 11月3日山东多地再现大风降温天气 半岛地区等地阵风可达7级以上
- 柿饼是热性还是凉性 多吃柿饼好不好