问题标签 [monitors]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
171 浏览

operating-system - 信号量有条件变量吗?

不是等待和信号条件变量来表示请求和释放吗?

该链接指出,信号量没有分生变量,而监视器有。

根据同一网站,

条件变量允许进程在监视器内等待,并允许等待的进程在其他进程释放资源时立即恢复。

这不是信号量中的相同过程吗?

0 投票
1 回答
105 浏览

c++ - 将监视器方法作为线程参数传递c ++

我正在编写一个监视器来相互排除对 a 方法的访问std::list 我现在拥有的基本上是这样的:

在 main 函数中,我创建了一个线程来运行 add 函数,例如thread t(m.m_add, 1);,我得到了错误

我知道(通过查看此处的其他答案)我应该像 in 一样运行线程thread t(&monitor::m_add, 1);并将所有方法声明为静态,但我需要实例化一个对象monitor以创建互斥锁(或锁或其他)并制作它们在 main 的范围内是私有的。

这种情况下最合适的解决方案是什么?如果锁只能在监视器类的范围内访问会很有趣(顺便说一句,我还打算list<int> l将来把它放在监视器类中。)