今天做点JAVA多线程的练习题来巩固一下多线程的相关知识,话不多说,直接上题。
Thread类中的start()方法与run()方法的区别
答:线程对象调用run()方法不开启线程,仅仅是对run()方法的调用。而start()方法会开启线程,并且让jvm调用run()方法在线程中执行。
在做这道题的时候,我发现了一个比较有趣的事情,下面两段代码的运行结果居然不是一样的,惊到我了。
public class Demo11 extends Thread{
public static void main(String[] args){
new Demo11().start();
System.out.println("--------------");
new Demo11().run();
}
@Override
public void run() {
System.out.println("abc");
}
}
--------------
abc
abc
public class Demo11 extends Thread{
public static void main(String[] args){
new Demo11().run();
System.out.println("--------------");
new Demo11().start();
}
@Override
public void run() {
System.out.p