Я работаю над многопоточной программой на Java, которая использует общий массив для передачи данных между потоками. Он разрабатывается в Netbeans 6.7.1.
Кажется, что один из потоков работает, только когда в нем установлена точка останова, не имеет значения, где он находится.
Запуск в режиме отладки без точек останова действует так же, как запуск в выпуске - ожидаемый вывод никогда не поступает.
Я не могу сказать, где возникает проблема, поскольку, когда добавляется точка останова и я нажимаю продолжить, она работает, как ожидалось.
Как мне узнать, где и почему возникает эта проблема?
Пример кода:
result = utils.isBufferFull(AudioDuplex.voiceArray);
if(result == true) {
System.out.println("Taking copy");
voiceArray = AudioDuplex.voiceArray;//.clone();
utils.clearBuffer(AudioDuplex.voiceArray);
}
Если точка останова находится на строке 2, она никогда не срабатывает.
Будет достигнута точка останова в строке 3, и будет получен ожидаемый результат.