вот моя проблема: у меня есть приложение, которое запускает симулируемый сервер локально.Вывод этой операции перенаправляется в файл журнала, и я хочу найти определенный шаблон в этом файле журнала во время его записи.
Я уже реализовал симуляцию tail -f (мне нужно работать с окнами), но я не могу заставить два потока работать нормально одновременно.
Вот пример (в основном):
server.launch();
patternFinder.start();
PatternFinder расширяет Thread, и вот как выглядит его метод запуска:
public void run() {
while (true) {
//tail -f implementation
//I'll set a timeout when I can get it
//to work (the pattern is supposed to be found)
}
}
Если я поставлю patternFinder.join()
после start()
, сервер остановитсяего выполнение и дождитесь возвращения patternFinder (но он этого не сделает, потому что в журнале ничего не пишется).Но дочерний поток должен блокировать основной поток, потому что мы не хотим, чтобы какая-либо инструкция выполнялась до тех пор, пока не будет найден шаблон (или не достигнут предел времени ожидания).
Есть идеи?
(ps: первое сообщение, поэтому не стесняйтесь сообщать мне, если я сделал что-то не так, или если вам нужно больше подробностей)