2009-07-31 101 views
0

是否有任何机构使用C++中的互斥和条件变量实现了带有信号(唤醒等待线程)的监视器。在C++中使用互斥信号和条件变量实现监视器

我不知道如何开始。任何示例代码或在线文章都会很棒。 有没有实现这些的开源库?

我需要Windows和Linux。但开始与Windows(win32)将没事。

+0

我更新了我的帖子。 – San 2009-07-31 07:34:15

+0

对不起,你的问题是什么?为互斥体和条件编写一些可移植代码或学习如何使用它们? – Ben 2009-07-31 08:20:07

+0

我希望在C++中使用互斥信号的监视器类使用互斥锁和条件变量。自己编写一个监视器课程也很困难且耗时。我确信有人会实施它,但无法找到它。所以我发布了这个问题。 – San 2009-07-31 08:36:59

回答

2

This Qt Quarterly article说明如何使用Qt的QMutex和QWaitCondition做到这一点。但是,你应该能够与任何互斥类,你要用来重新实现它..

又见here更高级的例子..

0

我在C++中使用的所有线程化编程都使用了pthreads,它具有您需要的基本构建块。这article讨论使用这些积木监视器

由于某些原因链接不起作用,粘贴相同的URL到浏览器,它会。

http://findarticles.com/p/articles/mi_m0VVT/is_10_2/ai_n24998136/ 
0

Mozilla的平台抽象库NSPR (网景便携式运行)都有监视器提取,其是跨平台的。这是一个“真正的”实现(实际上在Firefox中使用),因此它并不简单。但它是一个监视器。

来源:prmon.cprmon.h

文档:prmon.html

2

退房与样品boost::thread::condition_variable在一起。 它可以用来等待有或没有超时的情况。我认为这是一个相当优雅的解决方案,它应该完成您在这种情况下所需要的,并以便携的方式进行。