Loading

实现多线程

实现多线程的方法

  1. 继承Thread类
  2. 实现Runnable接口
  • 方法2(实现Runnable接口)更好
  • 两种方法的本质对比
    • 方法一: run()整个都被重写
    • 方法二: 最终调用target.run();
  • 通常我们可以分为两类,Oracle也是这么说的
  • 准确的说,创建线程只有一种方式那就是构造Thread类,而实现线程的执行单元有两种方式
    • 方法一: 实现Runnable接口的run方法,并把Runnable实例传给Thread类
    • 方法二: 重写Thread的run方法

典型错误观点

  • 线程池创建线程也算是一种新建线程的方式
  • 通过Callable和FutureTask创建线程,也算是一种新建进程的方式
  • 无返回值是实现Runnable接口,有返回值是实现Callable接口,所以Callable是新的实现线程的方式
  • 定时器
  • 匿名内部类
  • Lambda表达式

典型错误观点总结

  • 多线程的实现方式,在代码写法中千变万化,但其本质万变不离其宗

实现Runnable接口和继承Thread类哪种方式更好

  1. 从代码架构角度
  2. 新建线程的损耗
  3. java不支持双继承
  4. 可参考实现Runnable接口和继承Thread类哪种方式更好

线程Thread类的start()和run()

线程Thread类的start()和run()

posted @ 2021-11-26 17:05  繁夏  阅读(37)  评论(0)    收藏  举报