2016-04-01 3 views
-4

У меня есть 3 класса и которые разделяют 3 тем. Каждый поток будет иметь доступ к общему списку, который синхронизирован. Но проблема в том, что я просто хочу заблокировать поток на основе идентификатора и разблокировать следующий. Если предыдущий закончен.Как заблокировать поток на основе идентификатора потока?

Пример

У меня поточно-1, поток-2, поточно-3, который будет получить доступ к списку одновременно. Мне нужно заблокировать thread-2 и thread-3 на основе своего «id», пока нить-1 не завершится. И пусть они исполняются один за другим.

Я использую программирование JAVA для достижения этого. Пожалуйста, помогите мне найти способ добиться этого.

+0

так что не возникнет проблем, если Thread-1 и Thread-2 будут иметь доступ к списку одновременно? Какой язык программирования кстати? – JohnnyAW

+0

Нет. Я хочу заблокировать другие потоки и выполнить только один, основанный на Идентификаторе. как только текущий поток завершается, тогда он должен разблокировать следующий, и пусть он выполняется. Это должно произойти, когда multi thread взаимодействует с определенным списком. – ArrchanaMohan

+1

, если вы синхронизируете в списке, он должен действительно делать то, что вы хотите, потоки будут обращаться к этому кодовому блоку только после того, как другой поток завершит выполнение. – JohnnyAW

ответ

0

Это может быть сделано с помощью метода ExecutorService.invokeAll(). Моя основная задача - сохранить порядок o/p.

Пожалуйста, проверьте ниже URL:

https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html

Я надеюсь, что это может помочь кому-то. Спасибо вам всем. Этот вопрос можно закрыть.

Смежные вопросы