Чтобы следовать этому процессу, вам понадобится другая нить (C), которая может считывать информацию о состоянии, выводимую A & B, и которая может запрашивать A & B, если они должны продолжаться.
Например, создайте интерфейс ProcessFollower
двумя способами:
- void updateStatus (String)
- логическое shouldStop ()
C может реализовать этот интерфейс и передавать себя при вызове A, A передает ссылку на ProcessFollower
(C) на B. Каждый раз, когда изменяется состояние, A и B вызывают updateStatus
и в каждом случае (например, каждая итерация цикла ) они проверяют shouldStop
(); если ложь, они просто возвращаются или тому подобное.