欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > c/c++ >内容正文

c/c++

【C++多线程系列】【七】实现经典的C/S架构

发布时间:2025/6/16 c/c++ 49 豆豆
生活随笔 收集整理的这篇文章主要介绍了 【C++多线程系列】【七】实现经典的C/S架构 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

2019独角兽企业重金招聘Python工程师标准>>>

要求如下:

1.S端收到C端请求后,将C端请求加入到优先级队列中,S端有专门的线程A来处理该队列中的请求,该线程不阻塞,线程A从队列中拿到请求后,会新起一个线程来执行该请求,C端的线程会阻塞,直到执行线程将结果返回。

 

基于此,整体流程图如下:

 

问题关键点:

1.请求线程需要阻塞,直到拿到处理结果。

2.处理队列的线程不能阻塞,需要一直处理队列中的请求。

3.执行线程被创建完成后,需要独自处理请求,并将结果返回给请求线程。

 

所以有两种方法:

方法一:使用条件变量,来进行线程间的通信。注意两点:请求线程与执行线程需要在同一个条件变量上;需要在同一个mutex上加锁。

方法二:使用原子变量Done来进行两个线程间的通信,请求线程使用while循环来阻塞;

转载于:https://my.oschina.net/u/3800567/blog/1802446

总结

以上是生活随笔为你收集整理的【C++多线程系列】【七】实现经典的C/S架构的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。