java中有两种实现线程对象的方式,一是继承Thread类,二是实现Runnable借口。
推荐使用第二种方式。
Thread类是Runnable的实现类,Runnable只有一个方法,run()。调用Runnable实例的run方法,并不能启动一个新的线程,也就是Thread对象的run也不能启动新的线程。
启动新线程的方式只有Thread对象的start0()方法,该方法为native方法,会调用jvm,分配资源,开启新的线程。
在java代码中,启动新线程的方式只有start方法,start方法会调用start0()方法,开启新线程。
new Thread(Runnalbe).start();
new Thread().start();
才是开启新线程的方式
new Thread().run();
new RunnableImpl().run();
只是调用了java类的普通方法,并没有开启新的线程。