У меня есть код на C++ для Windows, и я собираюсь перенести его на 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 в Java, но он не подходит для моей ситуации, потому что я не могу обработать все новые данные за 1 итерацию цикла, а обработка распространяется на несколько итераций.
Заранее спасибо!