腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
1
回答
基于pthread的事件仅
唤醒
等待
的
线程
、
在我的C++程序中,我有一个类CEvent,它具有基于pthread的触发器和
等待
成员函数(在
Linux
上运行)。如果有一个
等待
的进程,那么实现是非常明显的(例如,有许多在线示例)。但是,现在我需要满足这样的要求,即多个
线程
正在
等待
事件,并且在调用trigger()时,所有
线程
都应该可靠地
唤醒
。作为第二个条件,只有在调用trigger()时正在
等待
的
线程
应该被
唤醒
。pthread_cond_wait(&con
浏览 1
提问于2009-05-28
得票数 5
回答已采纳
1
回答
使用CreateEvent和WaitForMultipleObjects到
Linux
的端口程序
、
、
、
、
我需要将使用Windows函数SetEvent、CreateEvent和WaitForMultipleObjects的多进程应用程序移植到
Linux
。我有一个应用程序,它将三个进程分叉,并通过这些事件管理一个进程的
线程
工作池。 我对这个问题有多种解决办法。一种是使用
Linux
上的mkfifo在
linux
上创建FIFO特殊文件,并使用select语句
唤醒
线程
。问题是,这个解决方案的工作方式
与
WaitForMultipleObjects不同。例如,如果工作池的10个
浏览 2
提问于2016-02-08
得票数 3
回答已采纳
7
回答
强迫Java中的虚假
唤醒
、
、
、
、
这个问题并不是关于假
唤醒
是否真的发生,因为这里已经详细讨论了这一点:因此这也不是关于为什么我必须在我的wait语句周围放一个循环。这是关于: 如果一个
Linux
进程被发出信号,它的
等待
线程
将享受到一个漂亮的、虚假的
唤醒
。看来这只会运行
linux
机器,实际上我有Ubuntu 11.04 -64位。我编写了一个Java程序,其中一个
线程
等待
条件,但没有循环
浏览 2
提问于2011-07-14
得票数 28
回答已采纳
1
回答
在
等待
事件时会出现虚假的
唤醒
吗?
、
、
用于的MSDN页面声明: while (check_predicate()) SleepConditionVariableCS(...)如果我使用的是而不是条件变量,那么我是否可以在
等待
时取
浏览 1
提问于2016-08-04
得票数 4
回答已采纳
3
回答
为什么
等待
队列实现在循环上
等待
,直到满足条件?
、
wait_event_interruptible() (或其他
等待
API)在循环中
等待
,直到满足某个条件。现在,由于
linux
的
线程
是作为单独的进程实现的,我认为错误的
唤醒
(在wait_event*被
唤醒
时没有满足的条件)表明程序/驱动程序中存在错误。 我错了吗?-是否有任何有效的场景可以发生并使用这种虚假的
唤醒
?换句话说,为什么在循环中
等待
wait_event*实现中的条件?
浏览 1
提问于2012-06-25
得票数 3
回答已采纳
1
回答
关于pthread_cond_wait?
、
、
、
pthread_cond_wait( &frame->cv, &frame->mutex );}多个
线程
可以调用q265_frame_cond_wait请求帧具有所需的i_lines_completed,而只有一个
线程
调用q265_frame_cond_broadcast来广播i_lines_completed。问题是:当某个
浏览 1
提问于2016-08-31
得票数 4
1
回答
Linux
中的选择()、posix消息队列和多
线程
、
但是在
linux
中,没有办法(我搜索并发现QNX支持这种机制)。但是我的问题是:如果系统中有许多
线程
在
等待
相同的消息队列(通过使用select()), 如果消息被发送到消息队列,所有
等待
的
线程
都会被
唤醒
并运行。也许一个
线程
(不是第一个
等待
线程
)
浏览 2
提问于2016-04-24
得票数 2
3
回答
条件变量的成本是多少?
、
、
、
、
如果一个
线程
正在
等待
一个条件变量,那么
唤醒
这个
线程
的相关开销是多少?同样,
与
等待
条件变量相关的成本是多少?我感兴趣的是粗略的量化和成本的来源。在某种程度上,答案是“视情况而定”,我主要关心的是x86/x64上的Windows和
Linux
的最新版本。 编辑:由于涉及内核调用,内核调用比常规函数调用的开销高多少?
浏览 1
提问于2011-04-21
得票数 4
2
回答
Win32接口中GetMessage()的内部机制是什么?
在windows应用程序的消息循环中,当消息队列中没有消息时,GetMessage()函数将挂起应用程序
线程
,但是当消息进入消息队列时,它如何设法
唤醒
自己呢?休眠
线程
如何
唤醒
自己?
浏览 4
提问于2011-11-13
得票数 1
回答已采纳
4
回答
在Java中给
线程
发信号
、
、
我的Java应用程序(在
Linux
平台上)中有两个
线程
在运行,
线程
一创建就会休眠。我希望
线程
在设置环境变量时被
唤醒
。那么有没有办法在Java中实现这一点呢?提前谢谢。
浏览 0
提问于2013-09-13
得票数 0
1
回答
在场景后面如何实现epoll()、互斥和信号量相同的系统调用?
、
、
、
、
我的问题是: 硬件级中断:例如,一旦另一个
线程
释放锁,就会发生边缘触发器。忙着
等待
:在很低的层次上忙着
等待
。例如,一旦另一个
线程</e
浏览 2
提问于2016-12-15
得票数 0
回答已采纳
4
回答
Linux
上还存在雷群问题吗?
、
许多
linux
/unix编程书籍和教程都谈到了,当多个
线程
或for在select()调用上被阻塞,
等待
侦听套接字的可读性时,就会发生这种情况。当连接进入时,所有
线程
和fork都被
唤醒
,但只有一个
线程
成功调用了"accept()“。同时,大量的cpu时间无缘无故地被浪费在
唤醒
所有
线程
/ for上。我注意到了一个,它在
linux
内核中提供了这个问题的“修复”,但这是一个非常旧的补丁。 我认为有两种变体;一种是
浏览 3
提问于2010-02-07
得票数 32
回答已采纳
1
回答
使用基于futex的锁管理跟踪服务员的最有效方法是什么?
、
、
、
我一直在使用基于futex的锁的
等待
计数方法:
与
futex int相邻,有第二个int,它是
等待
锁的
等待
计数,
等待
执行futex
等待
操作之前自动递增,从futex syscall返回时自动递减。然而,我注意到,当运行的
线程
数量大于cpus数量时,这具有病理性的不良属性,即执行无用的
唤醒
syscall的数量,如下所示:
线程
A在futex上暂停
等待
,因此
等待
计数增加,但它不会很快再次接收时间片,同时,
浏览 9
提问于2014-07-31
得票数 1
1
回答
Linux
等待
队列-排它和非排它的组合
、
、
、
、
今天,在课堂上,我们学习了
Linux
中的
等待
队列,在讨论独占/非排他性
等待
时,出现了一些有趣的东西。N - N - N - E - N - E - N - N 讲师声称前4个
等待
将被
唤醒
( The ),内核将在第一个E之后停止遍历。这听起来很奇怪,因为E是排他性的,这意味着它不想和其他
浏览 4
提问于2016-10-06
得票数 2
回答已采纳
2
回答
我们如何使用notifyAll来确保
唤醒
后只有一个
线程
继续?
、
、
、
斯科特从带来的报道 要恢复在给定对象上挂起的
线程
,其他一些
线程
必须在引用同一对象的同步语句或方法中执行predefined方法notify。就像
等待
,通知没有争论。就像在Mesa中一样,有时需要
唤醒
在给定对象中
等待
的所有
线程
;Java为此提供了内置的notifyAll方法。如果
线程
正在
等待
多个条件(即,如果它们的
等待
嵌入在不同的循环中),则无法保证“正确”
线程
将被
唤醒
。为了确保适当的
线程</
浏览 6
提问于2017-10-15
得票数 0
回答已采纳
2
回答
用signal替换自旋锁
、
、
我的多
线程
代码中有很多自旋锁,大多数时候它们都在
等待
其他
线程
工作,因此占用了大量的cpu资源。在
linux
中,我通常使用pthread_cond_wait和pthread_cond_signal来暂停
线程
,并在收到信号时
唤醒
线程
。boost库中有这样的东西吗?我匆匆看了一眼,什么也没找到。
浏览 1
提问于2009-06-03
得票数 3
回答已采纳
2
回答
`FUTEX_REQUEUE`的错误是什么?
、
我在操作系统类中按需要分配
Linux
手册页,作为对学生在设计同步原语时不要自满的警告。FUTEX_FD (present up t
浏览 6
提问于2014-08-27
得票数 6
5
回答
如何在C++中创建高效的多
线程
任务调度程序?
、
、
、
、
有一个管理
线程
,它
等待
最少的时间,这样它就可以将任务从allTasksQueue放到tasksReadyToRunQueue。工作
线程
等待
tasksReadyToRunQueue中可用的任务。如果Scheduler::add在allTasksQueue前面添加了一个任务(一个任务的值为delayToRun,因此它应该在当前最快运行的任务之前),那么管理任务就需要被
唤醒
,这样它就可以更新
等待
的时间如果工作
线程
等待
的条件变量只有一个:此方法可以被认为效率低
浏览 9
提问于2017-09-07
得票数 23
回答已采纳
1
回答
在
Linux
中
等待
多
线程
上事件的最佳实践(如WaitForMultipleObjects)
、
、
、
在WaitForMultipleObjects中,如果在多个
线程
中注册了一个事件,则只有在事件发生时
唤醒
一个
线程
。现在,我必须移植一个在其
线程
池中使用此功能的应用程序,并且我正在寻找在
Linux
中这样做的最佳实践。我知道epoll可以
等待
fds (我可以用pipe创建),但是在多个
线程
中
等待
一个FD可能会在只需要一个
线程
的情况下
唤醒
事件中的每个
线程
。 在
Linux
上实现这种行为的最
浏览 1
提问于2019-08-03
得票数 1
回答已采纳
2
回答
当notifyAll()调用时,恢复顺序是什么?
、
Thread-0也就是说,我们的顺序
与
添加到
等待
集的顺序相同,还是没有指定?
浏览 5
提问于2014-09-07
得票数 0
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
Java并发编程:如何防止在线程阻塞与唤醒时死锁
Linux操作系统线程库性能测试与分析
聊聊Linux中线程和进程的联系与区别!
linux多线程服务器
Linux系统编程 线程属性
热门
标签
更多标签
云服务器
ICP备案
对象存储
腾讯会议
云直播
活动推荐
运营活动
广告
关闭
领券