社区
C++ 语言
帖子详情
什么是消息阀?
Microsoft777
2008-04-30 04:56:34
刚才在百度和 google 搜索了一下
没有找到相关的资料
我想解决在进程执行过程中狂占CPU的问题
哪位哥哥看看能解决不
小弟这里先谢谢了
...全文
167
12
打赏
收藏
什么是消息阀?
刚才在百度和 google 搜索了一下 没有找到相关的资料 我想解决在进程执行过程中狂占CPU的问题 哪位哥哥看看能解决不 小弟这里先谢谢了
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Microsoft777
2008-05-05
打赏
举报
回复
消息泵和消息阀是同一个概念
BOOL GetMessageMap()
{
MSG msg;
while(::PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
::DispatchMessage (&msg);
return TRUE;
}
把消息循环改成这样
herman~~
2008-05-03
打赏
举报
回复
sleep();
abupie
2008-05-02
打赏
举报
回复
[Quote=引用 2 楼 iGoo 的回复:]
不要用这样的方式获取消息
while( 1 )
{
getmessage();
domessage();
}
这是一个busy loop
要用这样的方式
收到消息的线程
ThreadRecvMessage()
{
// 1:将消息放入队列,注意同步保护
// 2:发送事件
SetEvent(hEvent);
}
while( WaitForSingleObject( hEvent, INFINITE ) == WAIT_OBJECT_0 )
{
getmessage();
domessage();
}
[/Quote]很清楚了。
Microsoft777
2008-05-02
打赏
举报
回复
自己顶一下!
Microsoft777
2008-05-02
打赏
举报
回复
while( 1 )
{
getmessage();
domessage();
}
在哪里啊?
solo_coder
2008-05-02
打赏
举报
回复
帮顶一下,
我曾经这样做过 :
while(1)
{
sleep(200);
getmessage();
domessage();
}
让消息处理线程(该程序是多线程的程序,有消息处理分发线程,界面处理线程,工作线程)sleep下,
效果也还可以。
如果没有记错的话,
我记得我以前维护过的一个商业上要求可靠性,性能很高的程序中,
也只是让消息线程sleep等待一下(具体实现是用select函数实现让线程放弃对cpu资源的占用),而没有用到event这样的通告机制,
该程序实际工作也很稳定。
Microsoft777
2008-04-30
打赏
举报
回复
[Quote=引用 2 楼 iGoo 的回复:]
不要用这样的方式获取消息
while( 1 )
{
getmessage();
domessage();
}
这是一个busy loop
要用这样的方式
收到消息的线程
ThreadRecvMessage()
{
// 1:将消息放入队列,注意同步保护
// 2:发送事件
SetEvent(hEvent);
}
while( WaitForSingleObject( hEvent, INFINITE ) == WAIT_OBJECT_0 )
{
getmessage();
domessage();
}
[/Quote]
还是不太懂
while( 1 )
{
getmessage();
domessage();
}
消息循环在 MFC 下应该是被封装了。
ThreadRecvMessage()
{
// 1:将消息放入队列,注意同步保护
// 2:发送事件
SetEvent(hEvent);
}
while( WaitForSingleObject( hEvent, INFINITE ) == WAIT_OBJECT_0 )
{
getmessage();
domessage();
}
这些应该加载哪里呢
iGoo
2008-04-30
打赏
举报
回复
是windowsAPI,可以用的
其实这就是MS倡导的,消息驱动
没事别没头没脑的Get
Microsoft777
2008-04-30
打赏
举报
回复
我是在 MFC 下
这些也适用吗
OpenHero
2008-04-30
打赏
举报
回复
WaitForSingleObject还有其他几个返回结果~最好用一个switch 处理
iGoo
2008-04-30
打赏
举报
回复
不要用这样的方式获取消息
while( 1 )
{
getmessage();
domessage();
}
这是一个busy loop
要用这样的方式
收到消息的线程
ThreadRecvMessage()
{
// 1:将消息放入队列,注意同步保护
// 2:发送事件
SetEvent(hEvent);
}
while( WaitForSingleObject( hEvent, INFINITE ) == WAIT_OBJECT_0 )
{
getmessage();
domessage();
}
OpenHero
2008-04-30
打赏
举报
回复
不知道 mark一下~
面试官杠上
消息
队列?别慌,现在就来找找重复消费、
消息
堆积、
消息
丢失、顺序
消息
的解决方案
面试官杠上
消息
队列?重复消费、
消息
堆积、
消息
丢失、顺序
消息
… 什么,这么多问题啊!别慌,现在就来找找解决方案。
【物联网平台Rabbitmq实际应用】rabbitMQ的使用场景?
消息
队列产生严重
消息
堆积怎么处理?
文章目录rabbitMQ的使用场景
消息
队列产生严重
消息
堆积怎么处理?如何应对严重
消息
堆积呢?例如有订单
消息
丢了,那就需要找出哪些订单
消息
丢了,然后重新发到队列。快速处理海量积压
消息
rabbitMQ的使用场景 1.同步变异步 可以使用线程池解决,但是缺点很明显:要自己实现线程池,并且强耦合 大多数是使用
消息
队列来解决2.低内聚高耦合:解耦----减少强依赖. 3.流量削峰—秒杀系统通过
消息
队列设置请求最大值,超过
阀
值的抛弃或者转到错误界面 4.rabbitmq采用信道通信。不采用tcp直
关于KN95口罩:可以使用多久?要不要呼吸
阀
?怎么佩戴?
鼠年大吉HAPPY 2020'S NEW YEAR来源 | 哆来咪咪再说一遍:一定要戴口罩!冠状病毒在人与人之间传播,通常是在某人接触到感染者的分泌物的时候。病毒的传染力直接影响...
什么是缓存雪崩?服务器雪崩的场景与解决方案
雪崩问题分布式系统都存在这样一个问题,由于网络的不稳定性,决定了任何一个服务的可用性都不是 100% 的。当网络不稳定的时候,作为服务的提供者,自身可能会被拖死,导致服务调用者阻塞,最终可能引发雪崩连锁效应。缓存雪崩当缓存服务器重启或者大量缓存集中在某一个时间段失效,这样在失效的时候,也会给后端系统(比如DB)带来很大压力,造成数据库后端故障,从而引起应用服务器雪崩。雪崩效应产生的几种场景流量激增:比如异常流量、用户重试导致系统负载升高;
面试官:Kafka 会不会丢
消息
?怎么处理的?一篇文章带你学习
在正常情况下,客户端的异步调用可以通过callback来处理
消息
发送失败或者超时的情况,但是,一旦producer被非法的停止了,那么buffer中的数据将丢失,broker将无法收到该部分数据。Broker丢失
消息
是由于Kafka本身的原因造成的,kafka为了得到更高的性能和吞吐量,将数据异步批量的存储在磁盘中。
消息
的刷盘过程,为了提高性能,减少刷盘次数,kafka采用了批量刷盘的做法。中有实现,实现原理是将异步刷盘的流程进行阻塞,等待响应,类似ajax的callback或者是java的future。
C++ 语言
65,199
社区成员
250,520
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章