Я работаю над программой на Java, и прошло уже больше года с тех пор, как я в последний раз использовал Java, поэтому я немного заржавел.Эта программа использует Runtime.exec()
для вызова других программ для выполнения своей грязной работы, и ей необходимо проанализировать их выходные данные и соответствующим образом обновить собственный графический интерфейс в реальном времени, пока работают другие программы.Какой лучший способ сделать это?В настоящее время я думаю о том, чтобы у моего класса external-program-executor был собственный внутренний поток, который опрашивает выходной поток внешней программы, а затем вызывает события, когда происходят интересные события, и затем реализует свой собственный EventListener
интерфейс для моих классов пользовательского интерфейса.Однако я беспокоюсь о том, как это справится с асинхронной природой запускаемых событий.Кто-нибудь может дать какие-нибудь советы о том, как защитить слушателей от условий гонки и / или о лучшем подходе?Спасибо.