继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【九月打卡】第9天 C气象数据中心 13-11 线程池的实现

一点积分
关注TA
已关注
手记 29
粉丝 5
获赞 2

【九月打卡】第9天 C气象数据中心 13-11 线程池的实现

课程信息

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

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

主讲老师: 吴从周

课程内容

实现数据服务总线的线程池

课程收获

1.实现的原理:在主线程中预先创建n个工作线程,使用主进程监听客户端的连接,当有新客户端连上来的时候,把它放入待处理队列。工作线程从队列中取出客户端连接,处理客户端的业务请求。
2.。实现的细节:

  • 在队列中,存放的是客户端的socket

  • 采用条件变量+互斥锁(正联网费者模型)实现队列功能。

3.线程的强制运行:在线程操作中,可以使用 join() 方法让一个线程强制运行,线程强制运行期间,其他线程无法运行,必须等待此线程完成之后才可以继续执行。

4.线程的休眠,在程序中允许一个线程进行暂时的休眠,直接使用 Thread.sleep() 即可实现休眠。
5.中断线程:当一个线程运行时,另外一个线程可以直接通过interrupt()方法中断其运行状态。
6.死锁的概念:同步可以保证资源共享操作的正确性,但是过多同步也会产生问题。例如,现在张三想要李四的画,李四想 要张三的书,张三对李四说“把你的画给我,我就给你书”,李四也对张三说“把你的书给我,我就给你画”两个人互相等 对方先行动,就这么干等没有结果,这实际上就是死锁的概念。
所谓死锁,就是两个线程都在等待对方先完成,造成程序的停滞,一般程序的死锁都是在程序运行时出现的。

图片描述
图片描述

图片描述

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP