65.9K
CodeProject 正在变化。 阅读更多。
Home

CObjBroker - 有限资源Broker类

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.67/5 (2投票s)

2002年8月9日

1分钟阅读

viewsIcon

41296

downloadIcon

634

如果你在多线程场景下处理有限的资源,ObjBroker 将会帮助你...

Sample Image - demo.gif

引言

有时我们会有多线程场景,而问题总是出现在两个或多个线程并发访问相同的资源上。因此,常见的解决方案是每个资源都有一个锁同步对象。但如果需要管理的资源很多,这就不太好。有没有一种安全的线程资源管理器呢?

对象代理

CObjBroker 是一个用于将有限资源分配给线程的管理器类。当然 CObjBro 必须是线程安全的。(我希望它是)请参阅下文

关于演示

在演示中,有两个资源,名为 'bro1' 和 'bro2',它们是糟糕的程序员(是我..),还有一个名为 'project manager' 的第三个线程,它想要获取 'bro'。'pm1' 和 'pm2' 获取 'bro',并让 'bro' 工作,直到 'bro' 疲倦。如果 'bro' 疲倦了,就释放 'bro'。最后,第三个 'pm' 是一个优秀的 'pm'。他获取 'bro',然后让 'bro' 休息。如果 'bro' 恢复精力,就释放给其他工作线程 'pm'。

CBroBroker 是从 CObjBroker 派生的。并且他使用 std::list 管理 'bro'。演示代码很容易阅读,所以你可以从 CObjBroker 中获得一个想法。

我希望它也能帮助你。并且我希望得到你的良好建议和意见!

© . All rights reserved.