2 qq 30587385 qq_30587385 于 2016.09.12 17:23 提问

windows平台下C++服务器多线程问题

最近在Windows平台下 用sokcet 写了一个TCP通信服务器 用的模型IOCP模型写到

问题是这样
我开了4个线程 比如: A B C D 4个线程
A线程负责接收客户端消息 接收到消息之后压入一个队列当中 而队列当中一旦消息
A线程就通知 B C D 3个线程开始处理消息 如果队列中没有消息 B C D 3个线程
就会阻塞 直到队列当中有消息才继续执行 请问该怎么做呢????

1个回答

oyljerry
oyljerry   Ds   Rxr 2016.09.13 23:15

可以用信号量等来进行线程的同步

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
windows下socket 多线程服务器
环境:VS2015 用c++ 11 的thread库实现多线程。为啥感觉使用这个库的人不多呢??跨平台不好吗。 但使用起来和非多线程的表现好像并没有什么不同。。。可能要高并发时才能看出区别吧! 服务器代码: #define _WINSOCK_DEPRECATED_NO_WARNINGS #include #include #include #include #pragma com
C# 多线程编程 经典模型 哲学家进餐问题
语言:C#   总起: 今天的哲学家进餐问题是最后多线程模型,讨论的是在有限的资源里线程竞争导致死锁、饥饿等问题。   没有接触过多线程编程的同学,可以先看一下第一章。   哲学家进餐问题: 该问题说的是,有5个哲学家围在一个圆桌前进餐,每个哲学家两旁有两把叉子,一共5把叉子。每个哲学家进行进餐需要拿起左右两把叉子,吃完之后将两把叉子放回供其他人使用。   这个是wiki上的图
linux 下搭建tftp服务器
一、安装tftp服务器
linux网络编程之简单的服务器多线程
服务器&客户端demo 最近两天了linux的网络编程,自己写了一个demo,熟悉socket的几个主要API的用法: 虚拟机下的ubuntu 14.04 OS,程序包括: 客户端:发送连接请求;一旦连接建立,将用户输入的信息发送给服务器;输入end,客户端程序退出 服务器端:建立监听端口;接收连接请求;为每个请求创建一个线程,接收客户端的信息并打印。 服务器端程序: #inc
Windows下基于socket多线程并发通信的实现
本文介绍了在Windows 操作系统下基于TCP/IP 协议Socket 套接口的通信机制以及多线程编程知识与技巧,并给出多线程方式实现多用户与服务端(C/S)并发通信模型的详细算法,最后展现了用C++编写的多用户与服务器通信的应用实例并附有程序。 关键词:Windows;套接字;多线程;并发服务器; Socket 是建立在传输层协议(主要是TCP 和UDP)上的一种套接字规范,最初由美国加州Berkley 大学提出,为UNIX 系统开发的网络通信接口,它定义了两台计算机之间通信的规范,socket 屏蔽了底层通信软件和具体操作系统的差异,使得任何两台安装了TCP 协议软件和实现了Socket 规范的计算机之间的通信成为可能,Socket 接口是TCP/IP 网络最为通用的应用接口,也是在Internet 上进行网络程序应用开发最通用的API[1],本文介绍了Socket通信的基本机制以及采用多线程技术实现并发通信的基本原理,并给出实例。
C语言实现多线程和多进程服务器
c语言实现多线程和多进程服务器多线程服务端
一个多线程web服务器实例(C,Linux,详细的web服务器原理)
系统:fedora core 5编译器:g++实现功能:通过http协议,用浏览器查看服务器上的html,htm,jpg,jpeg,gif,png,css文件 ,或者说查看带有jpg,jpeg,gif等文件的网页,即是web~把代码复制下来到linux里,照着后面的方法编译、运行,就可以看到一个简单的多线程服务器的效果了。原理:在浏览器中输入一个网址,回车之后,浏览器会向相应主机的相应端口发送
linux下c语言实现多线程web服务器
操作系统课程项目,在linux下用c语言实现了多线程web服务器。可以选择不同的调度算法,来执行web请求,有FCFS, SJF。采用线程池设计思想实现。
windows平台基于C开发的websocket服务器开源库
https://github.com/orgRuilovechuLib/repWebSocketWinServer__V1_0
简版服务器(c语言实现) (多线程)
声明:仅个人小记这篇文章是对我上一篇文章的增加: 增加内容: 多线程,实现的是一个并发服务器。其中,用到了一把锁(pthread_mutex_t),用到了一个信号量(信号量的值为我规定的服务器处理队列长度值),然后就是将run函数里面的内容移植到void * thread(void * argc)函数。 只是贴出源码:效果展示(这个效果,得看清我的源码顺序过程才好理解,额不好意思。多线程