本人在写一个按照特定应用层协议多连接方式并发通讯客户端,由于该程序是自动运行的,那么它的数据是通过公共BUFFER进行数据交换的,前端连接通过轮循的方式访问BUFFER来将数据发送到服务器。现在该模式存在一个问题,当BUFFER没有数据时,系统轮循相当消耗资源,CPU占用率一直在20%左右,所以我想请教如何降低整个系统的消耗,谢谢!
解决方案 »
- 现有一张bmp图片,VC中如何截取图片的指定的一部分并保存
- 求解 ASSERT(::IsWindow(m_hWnd) || (m_pCtrlSite != NULL))的错误
- vc连mysql数据库的问题,望高手解答~
- CRect(0,0,0,0)与rect.SetRectEmpty();相等么?
- menu 响应右键消息的问题
- 想叛断是否指向记录尾部,可为什么它返回的都是TRUE
- 如何改变CListBox的背景颜色?
- 关于声卡录/放功能的问题
- 关于ListBox和ListCtrl的问题??
- 带身份验证的SMTP(如smtp.sina.com.cn)发送附件
- 我的应用程序想访问我的dll中定义的一个变量,怎么得不到值?请看。
- 能不能给小弟提点关于MFC学习的意见,意见中肯者必有高分相送
在轮循中加入 if(BUFFER没数据) Sleep(1); 试试:)
1、收到一次数据信号量增加1,
2、读一次数据信号量减少1,
3、信号量为0时,线程处于等待状态,CPU一点也没有白白消耗。