У меня 2 java процессов, процесс A записывает данные в файл, процесс B читает данные из файла. Иногда процесс A не запущен, процессу B необходимо прочитать существующие данные из файла, поэтому я не могу использовать сокет вместо файла.
Проблема в том, что когда B достигает конца файла, функция чтения немедленно возвращается, если Я пытаюсь повторить попытку без sleep()
, загрузка ЦП составляет 100%, даже если нет новых данных. Если я попробую с sleep()
, время отклика и производительность будут неудовлетворительными.
Есть ли способ заблокировать чтение при достижении конца файла, пока в файл не будут записаны новые данные, как если бы я использовал сокет?