我有一些适用于 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 时线程将暂停,直到新数据到达或线程退出时间到来。
我已经在 Java 中看到过Waitformultipleobjects问题,但它不适合我的情况,因为我无法在 1 个循环迭代中处理所有新数据,并且处理分布在一些迭代中。
提前致谢!