【发布时间】:2009-11-03 08:56:12
【问题描述】:
我有一些适用于 Windows 的 C++ 代码,我打算将其移植到 Java。但不幸的是,这并不像我想象的那么容易。有人可以帮帮我吗?
请看一下算法:
HANDLE hExitEvent;
HANDLE hDataAvailabeEvent;
while(true)
{
WaitForMultipleObjects();
if (hExitEvent is set)
break;
if (hDataAvailabeEvent)
{
process chunk of data;
if (all data processed)
ResetEvent(hDataAvailabeEvent);
}
}
hDataAvailabeEvent 可以从不同的线程中设置。如果所有数据都处理完毕,则事件重置并在调用 WaitForMultipleObjects 时线程将暂停,直到新数据到达或线程退出时间到来。
我已经看到了问题Waitformultipleobjects in Java,但它不适合我的情况,因为我无法在 1 个循环迭代中处理所有新数据,并且处理分布在一些迭代中。
提前致谢!
【问题讨论】:
标签: java c++ algorithm multithreading waitformultipleobjects