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拥有它的监视器,同时执行它自己的任务?或者因为他们共享一个共同的“主监视器”,他们一次执行一个,在队列中等待。