我是新來的線程,如何檢查線程是否處於等待狀態,如果它處於等待狀態,那麼我需要通知它。如何比較線程狀態
例如:有一個名爲's'的線程,當它被調用等待狀態時,只有通知狀態必須被調用。
是否有可能獲得,使用的getState()命令
對於防爆:
if(s.getState()=="WAITING")//To have a condition block like this
我是新來的線程,如何檢查線程是否處於等待狀態,如果它處於等待狀態,那麼我需要通知它。如何比較線程狀態
例如:有一個名爲's'的線程,當它被調用等待狀態時,只有通知狀態必須被調用。
是否有可能獲得,使用的getState()命令
對於防爆:
if(s.getState()=="WAITING")//To have a condition block like this
有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) {}
但是它甚至有必要嗎?問題看起來是如何解決不存在的問題。 –
我有這種感覺,但這是被問到的。也許這只是試驗。 – selimssevgi
關於'if(x ==「WAITING」)''不要使用'=='或'!='比較字符串。改爲使用「equals(...)」或「equalsIgnoreCase(...)」方法。理解'=='檢查兩個*對象引用*是否相同,而不是你感興趣的。另一方面,方法檢查兩個字符串是否具有相同順序的相同字符,這就是這裏很重要。 –
@HovercraftFullOfEels我的問題是我們如何比較Thread.State和String,我很抱歉,如果我錯誤地傳達了 – Renigunda
[Java:我可以如何通知一個線程,只有當它在等待?](http:// stackoverflow.com/questions/20270122/java-how-can-i-notify-a-thread-only-if-it-is-waiting) –