java 创建线程的方法

1 oracle官方说明

2 两种实现方式的本质对比

3 两种实现方式的优缺点


1 oracle官方说明

oracle官网地址 https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html

  • 实现Runnable接口
  • 继承Thread类,并重写run方法

 

2 两种实现方式的本质对比

  • runnable接口源码解析,我们可以看到最终执行的是传入接口的run方法

     

 

 

  • 继承thread类,因为子类方法会覆盖父类的方法,所以最终执行的是子类中run方法的内容

 

  •  结论:两种方法最终执行的都是Thread类的run方法

3 两种实现方式的优缺点

  • 继承Thread类的缺点,(相对于实现接口)
    1. 从架构的角度来看,线程具体执行的任务,应该和线程的创建是解耦的,不应该把线程的创建和要执行的内容混为一谈
    2. 每次想要创建一个任务只能每次新建一个线程,而创建线程损耗较大,不如实现runnable接口好
    3. 由于java只支持单继承,限制了类的可拓展性
  • 实现runnable接口的优点(相对与继承)
    1. runnable接口只关注线程要执行的内容
    2. 可以将runnable接口,传递给线程池复用,节省资源

 

posted @ 2020-07-11 17:01  蟑螂恶霸的开发笔记  阅读(97)  评论(0编辑  收藏  举报