Как узнать, закончили ли другие темы? - PullRequest
119 голосов
/ 31 марта 2009

У меня есть объект с методом StartDownload(), который запускает три потока.

Как получить уведомление о завершении выполнения каждого потока?

Есть ли способ узнать, завершен ли один (или все) поток или все еще выполняется?

Ответы [ 12 ]

0 голосов
/ 23 июня 2009

Вы также можете использовать SwingWorker, который имеет встроенную поддержку изменения свойств. См. addPropertyChangeListener () или get () метод для примера слушателя изменения состояния.

0 голосов
/ 31 марта 2009

Посмотрите документацию по Java для класса Thread. Вы можете проверить состояние потока. Если вы поместите три потока в переменные-члены, то все три потока смогут читать состояния друг друга.

Вы должны быть немного осторожны, потому что вы можете вызвать условия гонки между потоками. Просто попробуйте избежать сложной логики, основанной на состоянии других потоков. Обязательно избегайте записи нескольких потоков в одни и те же переменные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...