社区
C++ 语言
帖子详情
线程频繁挂起和唤醒,会有什么效率上的影响
gucheng789
2014-05-01 10:55:59
有一个线程用来处理用户主逻辑,用户逻辑数据包可能会很多,这个线程大多数时间都是在执行,但总有闲的时候,
现在对这个线程控制有两种方式:
1.为线程加上挂起和唤醒的功能,但是不知道线程频繁的挂起和唤醒操作会不会影响效率。
2.直接 sleep(), 延迟的时间根据上一次的数据处理量。
请前辈指点一下,线程频繁的挂起和唤醒 在Linux 或win 下的不同和效率。
...全文
1159
10
打赏
收藏
线程频繁挂起和唤醒,会有什么效率上的影响
有一个线程用来处理用户主逻辑,用户逻辑数据包可能会很多,这个线程大多数时间都是在执行,但总有闲的时候, 现在对这个线程控制有两种方式: 1.为线程加上挂起和唤醒的功能,但是不知道线程频繁的挂起和唤醒操作会不会影响效率。 2.直接 sleep(), 延迟的时间根据上一次的数据处理量。 请前辈指点一下,线程频繁的挂起和唤醒 在Linux 或win 下的不同和效率。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
mujiok2003
2014-05-04
打赏
举报
回复
线程上下文切换肯定是额外的开销。 如果从“闲”到“忙”的过度时间较长的话, 这种开销是合理的。否则, 就要考虑是否有必要“挂起”了。 可以多尝试检查是否有待处理的任务, 尝试一定次数之后,就可以睡去直到有任务将其唤醒。
赵4老师
2014-05-04
打赏
举报
回复
《Windows核心编程》 《深入解析Windows操作系统-Windows Internals》
lm_whales
2014-05-04
打赏
举报
回复
Windws Sleep 只有时间到才会执行,这样如果Sleep中途,需要响应; 那么毫无办法,因为Sleep把线程挂起了。
lm_whales
2014-05-04
打赏
举报
回复
Windws Sleep不能及时响应,不过可以用SleepEx 如果是等待同步信号(信号灯,互斥量,事件)挂起线程,那就能够及时响应. Windows 下,一般不需要主动挂起线程,让他在同步中自然挂起最好了; 既不额外增加CPU时间开销,也不会过分延迟响应。 这种响应的延迟,可以忽略,因为同步的响应是很快的。
不要做咸鱼
2014-05-04
打赏
举报
回复
注定不会频繁的挂起和唤醒吧,除非你用户很少。。。
derekrose
2014-05-01
打赏
举报
回复
还是2吧
taodm
2014-05-01
打赏
举报
回复
楼主,sleep难道不也是挂起么。
碼上道
2014-05-01
打赏
举报
回复
建议加个接收数据的队列,另外从你的情况来看,挂起和唤醒没有关系,你这个也不算很频繁了。
ErrorErro
2014-05-01
打赏
举报
回复
会浪费CPU的时钟周期吧
gucheng789
2014-05-01
打赏
举报
回复
主逻辑线程处理几百个或几千个玩家的数据,应该会很频繁,但是具体怎么频繁要看在线的玩家数量和玩家的操作。
碼上道
2014-05-01
打赏
举报
回复
频繁具体到什么地步,每秒切换多少次? 频繁挂起和唤醒在linux,win下均是有效率影响的,会涉及到内核态和用户态的切换。
深入探讨阻塞操作、
线程
挂起
及其对实时性的
影响
在并发编程中,阻塞操作(Blocking Operations)、
线程
挂起
(Thread Suspension)以及它们对实时性
代码示例展示了阻塞、非阻塞和异步操作的性能差异,测试用例验证了功能和实时性。深入探讨阻塞操作、
线程
挂起
及其对实时性的
影响
在并发编程中,阻塞操作(Blocking Operations)、
线程
挂起
(Thread Suspension)以及它们对实时性(Real-time Performance)的
影响
是关键概念,尤其在生产者-消费者场景中使用 BlockingCollection
时。测试用例以下是针对代码的单元测试,验证阻塞、非阻塞和异步操作的实时性。详细分析:阻塞操作对实时性的
影响
。
C++条件变量虚假
唤醒
全解析:3个真实案例揭示隐藏风险及应对方案
掌握C++条件变量的虚假
唤醒
处理方法,避免多
线程
程序中的隐藏陷阱。结合3个真实案例,解析常见误用场景与正确应对策略,提升
线程
同步可靠性。理解while循环检测与谓词检查的核心机制,值得收藏。
为什么你的condition_variable总是
唤醒
失败?(底层原理+调试技巧大公开)
解决C++多
线程
中std::condition_variable等待
唤醒
失败难题,深入解析底层原理与常见陷阱。涵盖虚假
唤醒
、锁策略与正确同步方法,提升
线程
通信可靠性。调试技巧+实战示例,值得收藏。
线程
相关概念
锁 当多个
线程
对同一个共享变量/对象进行操作,即使是最简单的操作,比如i++,在处理上实际也,涉及到读取、自增、赋值这三个操作,也就是说,这中间可能存在时间差,导致多个
线程
没有按照程序编写者所期望的去顺序执行,出现错位,从而导致最终结果与预期的不一致。 java中的多
线程
同步是通过锁的概念来体现的,锁不是一个对象,也不是一个具体的东西,而是一种机制的名称。锁机制需要保证如下两种特性: 互斥性...
Java多
线程
(进阶)
大家好,今天给大家带来的是多
线程
进阶相关的内容。1. 进程是系统进行资源分配和调度的一个独立单位,
线程
是程序执行的最小单位。2. 进程有自己的内存地址空间,
线程
只独享指令流执行的必要资源,如寄存器和栈。3. 由于同一进程的各
线程
间共享内存和文件资源,可以不通过内核进行直接通信。4.
线程
的创建、切换及终止
效率
更高读写锁就是把读操作和写操作进行加锁读锁和读锁之间不互斥读锁和写锁之间互斥写锁和写锁之间互斥主要用于
频繁
读 不
频繁
写的场景中。
C++ 语言
65,210
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章