Windows CE 3.0Windows CE 2.11Pocket PC 2002Windows MobileVisual Studio 6.NET 1.0Windows 2000Visual C++ 6.0Windows XP移动应用中级开发Visual StudioWindowsC++.NET
CObjBroker - 有限资源Broker类






3.67/5 (2投票s)
2002年8月9日
1分钟阅读

41296

634
如果你在多线程场景下处理有限的资源,ObjBroker 将会帮助你...
引言
有时我们会有多线程场景,而问题总是出现在两个或多个线程并发访问相同的资源上。因此,常见的解决方案是每个资源都有一个锁同步对象。但如果需要管理的资源很多,这就不太好。有没有一种安全的线程资源管理器呢?
对象代理
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
中获得一个想法。
我希望它也能帮助你。并且我希望得到你的良好建议和意见!