2016-11-27 2 views
-2

Я новичок в обсуждениях, Как проверить Если поток находится в состоянии ожидания, если он находится в состоянии ожидания, тогда мне нужно было его уведомить.Как сравнить с Thread State

Для примера: существует поток с именем 's', когда он вызывается в состоянии ожидания, тогда должен быть вызван только статус уведомления.

Есть ли возможность получить, что с помощью команды

GetState() Для Ex:

if(s.getState()=="WAITING")//To have a condition block like this 
+1

Относительно 'if (x ==" WAITING ")' - Не сравнивать строки с использованием '==' или '! ='. Используйте вместо этого метод 'equals (...)' или 'equalsIgnoreCase (...)'. Поймите, что '==' проверяет, соответствуют ли две ссылки на объекты *, которые вас не интересуют. Методы, с другой стороны, проверяют, имеют ли две строки одни и те же символы в одном порядке, и это то, что дело здесь. –

+0

@HovercraftFullOfEels Мой вопрос: как мы можем сравнивать Thread.State с String, извините, если я неправильно указал – Renigunda

+1

Возможный дубликат [Java: как я могу уведомлять поток только в том случае, если он ждет?] (Http: // stackoverflow.com/questions/20270122/java-how-can-i-notify-a-thread-only-if-it-is-waiting) –

ответ

2

Существует Thread.State тип перечисления, который является то, что вы получаете, когда вы звоните GetState() на Тема. Может оказаться полезным следующий код.

Thread t1 = new Thread(); 
Thread.State state = t1.getState(); 
System.out.println(state.equals(Thread.State.NEW)); 
// or 
if (Thread.getState().equals(Thread.State.WAITING) {} 
+0

Но это даже необходимо? Вопрос заключается в том, как решить проблему, которая не существует. –

+0

У меня было это чувство, но это то, что задают. Возможно, это просто эксперимент. – selimssevgi

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