1 回答

TA貢獻(xiàn)1712條經(jīng)驗 獲得超3個贊
您的代碼有幾個問題:
1) 它打破了 Java 代碼約定:類名必須以大寫字母開頭
2) wait() 方法必須由擁有對象監(jiān)視器的線程調(diào)用,因此您必須使用以下內(nèi)容:
synchronized (this) {
wait();
}
3)notify() 方法必須由擁有對象監(jiān)視器的線程和與 wait() 相同的對象調(diào)用,在您的情況下是 OrderSessionsManager 的實例。
4) 由于您沒有指定 ThreadGroup,線程從它的父線程獲取它的 ThreadGroup。以下代碼按預(yù)期工作:
public class Main {
public static void main(String[] args) {
class1 c1 = new class1();
try {
c1.createThread("t1");
} catch (Exception e) {
e.printStackTrace();
}
Thread thread = Utils.getThreadByName("t1");
System.out.println("Thread name " + thread.getName());
}
}
但這只是因為t1線程與主線程在同一組中。
添加回答
舉報