public Demo implements Runnable(){
private String threadName;
public Thread t;
public Demo(String name){
this.threadName = name;
}
public void begin(){
t = new Thread(this,threadName);
t.start();
}
public void run(){
Thread.sleep(1000);
System.out.println("Running");
}
}
public static void main(String args[]) {
Demo demo1 = new Demo("DEMO1");
demo1.begin();
Demo demo2 = new Demo("DEMO2");
demo2.begin();
}
好的,即使在讀取API和文檔之後,我對Thread也有點困惑。我的理解是,如果你實現Runnable()或擴展Thread類,它會創建它自己的線程。公共靜態void main()創建「主線程」,然後它的孩子是2個後續線程(Demo對象),並且在調用「begin()」之後,還有另外2個線程源自Demo對象。這裏有多少個線程?
- 此代碼中有5個主題?
- Thread.sleep(1000)似乎停止所有的線程,因此它是指「主線程」?
- 如果我在Demo類的run()方法中調用synchronized(this),Demo1同時擁有它的監視器Demo2擁有它的監視器,同時執行它自己的任務?或者因爲他們共享一個共同的「主監視器」,他們一次執行一個,在隊列中等待。