为了账号安全,请及时绑定邮箱和手机立即绑定
首页 手记 【九月打卡】第10天 C气象数据中心 13-12...

【九月打卡】第10天 C气象数据中心 13-12 线程池的监控

2022.09.18 22:53 47浏览
  • 课程信息

课程名称:C/C++气象数据中心实战,手把手教你做工业级项目

课程章节:13-11 线程池的实现

主讲老师: 吴从周

  • 课程内容

线程池的监控

进程程序:守护进程+调度进程+心跳机制;
线程程序:守护(监控)线程+心跳机制;
使用守护线程检查工作线程的心跳时间,如果超时,先取消再启动。

  • 课程收获
    稳定性的问题需要考虑到,虽然现在线程总线的 工作量不大,在实际使用过程中不容易出现程序挂死的现象,但是我们需要未雨绸缪,考虑到后续的吞吐量过大后,流程和功能更加复杂之后,就不一定会出现问题,所以需要加入线程监控。

1.在服务总线的服务端程序中加入线程的心跳信息。
图片描述

gettimeofdate(&now ,NULL);取当前时间放入now中

struct timeval now;gettimeofday (&now, NULL);//获取当前时间。
now. tv_sec=now.tv_sec+20;//取20秒之后的时间。
pthread_cond_timedwait (&cond, &mutex, (struct timespec*)&now);//等待条件被触发。 超时就返回。

2.监控线程

定义一个死循环,每隔3s左右检查一次,再套一个循环去遍历工作线程ID的容器,工作线程的超时时间为20s ,采用20以上的时间判断超时即可。
注意,建立监控线程之后,需要在线程退出子函数中增加取消监控线程的子代码。

图片描述

图片描述

点击查看更多内容
C++
0人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
手记
粉丝
0
获赞与收藏
0

关注TA,一起探索更多经验知识

同主题相似文章浏览排行榜

风间影月说签约讲师

50篇手记,涉及Java、MySQL、Redis、Spring等方向

进入讨论

Tony Bai 说签约讲师

146篇手记,涉及Go、C、Java、Python等方向

进入讨论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消