社区
C++ 语言
帖子详情
c++线程的睡眠和唤醒
hhhhhhio110
2012-11-19 01:30:07
我在主线程中创建线程A,然后在线程A中创建了线程B,现在,我想在在线程A中睡眠和唤醒线程B,要怎么操作呢,有哪些函数可以调用呢
...全文
833
1
打赏
收藏
c++线程的睡眠和唤醒
我在主线程中创建线程A,然后在线程A中创建了线程B,现在,我想在在线程A中睡眠和唤醒线程B,要怎么操作呢,有哪些函数可以调用呢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
科比布莱恩特
2012-11-19
打赏
举报
回复
在A中对线程B的handle进行挂起:SuspendThread 唤醒用:ResumeThread
GCC-Semaphores
GCC的信号量实现 据我所知,此示例应根据信号量的语义
唤醒
所有
线程
。 但是,使用我的gcc本地副本(11.0.1 commit a18ebd6c439),尽管重复发出了信号量,但它仅
唤醒
了一个
线程
。 显然,这是一个人为的最小示例,对于该示例,我可以运行wakeSemaphore.release(threadCount)行,而不必多次
唤醒
该信号灯。 但是对于另一个项目,这是不可行的,因为我需要根据需要单独
唤醒
线程
。 用等效的POSIX信号量实现替换std::counting_semaphore实现也可以解决此问题。 鉴于标准规定 ,并且我观察到
睡眠
线程
的counter值> = 1却仍保持
睡眠
状态,因此我认为此实现是非标准的-符合。 我认为问题在于,所有
唤醒
事件在任何
线程
都被
唤醒
之前会合并为一个,因此只有一个
线程
会观察到
唤醒
事件。 支持这一点的证据是,在每个信号量释放之间启动等待会允许所
Producers_and_Consumers_Problem
问题陈述生产者使用者编写一个控制台应用程序,其中包含N个生产者(N = 1…10),M个使用者(M = 1…10)和一个数据队列。 每个生产者和使用者都是一个单独的
线程
,并且所有
线程
都同时工作。 生产者
线程
随机
睡眠
0…100毫秒,然后
唤醒
并生成1到100之间的随机数,然后将该数字放入数据队列。 使用者
线程
随机
睡眠
0到100毫秒,然后
唤醒
并从队列中获取该数字,并将其保存到输出“ data.txt”文件中。 所有数字都附加在文件中,并且它们都用逗号分隔(例如4,67,99,23,…)。 当生产者
线程
将下一个数字放入数据队列时,它会检查数据队列的大小,如果> = 100,则生产者
线程
将被阻塞,直到元素数<=80。当消费者
线程
想要从中获取下一个数字时如果数据队列中没有元素,则消费
线程
将被阻塞,直到生产者将新元素添加到数据队列中为止。 启动应用程序时,我们需要插入N(生产者数量)和M(消费者数量),
C++
多
线程
编程视频教程(
C++
11多
线程
并发)
线程
与进程相比,它是一种花销小,...多编程并发在企业中开发显得尤为重要,本课程包含Windows多
线程
编程与
C++
11高并发编程,通过浅显易懂的代码与讲解,让你的多
线程
编程能力得到质的飞跃,具备开发高并发代码的能力!
C++
大量
线程
等待与
唤醒
一、
线程
唤醒
方法
C++
11之后提供了thread
线程
类,可以很方便的编写多
线程
程序。
线程
的等待和
唤醒
使用条件变量condition_variable和锁mutex结合实现,其中条件变量提供了wait(), notify(), notifyAll()等方法。 wait()的作用是让当前
线程
进入等待状态,同时,wait()也会让当前
线程
释放它所持有的锁。而notify()和notifyAll()的作用,则是
唤醒
当前条件变量上的等待
线程
;notify()是随机
唤醒
单个等待的
线程
,而notifyAll()是
唤醒
线程
休眠
线程
休眠
C++ 语言
64,676
社区成员
250,490
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章