Runnable 的好处

2020-06-11  本文已影响0人  hehehehe
image.png
image.png

1、干活的和线程创建启动应该解耦
2、Runable 可以更好利用线程池,不用单独创建线程,减少资源消耗
3、单继承的限制

本质上都是调用start方法,本质上没有区别,区别在于run的来源不同。

public void run(){
  if(target!=null){
    targret.run()
  }
}
thread 整个run被重写
runable 是 target.run()
new Thread(new Runnable() {
      @Override
      public void run() {
           System.out.println("runable");
       }
}) {
       @Override
        public void run() {
             System.out.println("thread");
       }
}.start();

会执行thread类的run,因为重写了run,经典的三行代码没了

创建线程的方法只有构造Thread类,而创建线程执行单元有两种方式

调用两次run方法会抛异常
private volatile int threadStatus = 0;
if (threadStatus != 0)
throw new IllegalThreadStateException();

上一篇 下一篇

猜你喜欢

热点阅读