1 public class ConcurentDemo extends Thread { 2 @Override 3 public void run() { 4 super.run(); 5 System.out.println("run方法中线程:"+Thread.currentThread()); 6 } 7 8 public static void main(String[] args) { 9 //runnable thread 10 new ConcurentDemo().start();//多线程 开启一个新线程 Thread[Thread-0,5,main] 11 new ConcurentDemo().run();//main线程中一个任务 没有开启新线程 Thread[main,5,main] 12 System.out.println("main方法中线程:"+Thread.currentThread());//Thread[main,5,main] 13 Runnable r=()->{ 14 System.out.println("runnable线程"+Thread.currentThread()); 15 }; 16 Thread t=new Thread(r); 17 // start方法与run方法的区别 直接执行run是本线程中的一个任务 start是新的线程 18 t.start();//Thread[Thread-1,5,main] 19 20 } 21 }
1:run和start的区别:run是在原线程上执行任务 start是新线程执行run任务
2:使用Runnable与子类区别:官方建议 不修改或增加Thread方法,只是仅仅override run方法的话还是不要使用子类
直接使用Runnable 来创建新线程
找到那个感觉 就算打开了那个脑洞
本文来自博客园,作者:慢热并不是缺点,转载请注明原文链接:https://www.cnblogs.com/angin-iit/p/16241757.html