实现多线程的三种方式
继承Thread类
1 | class MyThread extends Thread { |
实现Runnable接口
1 | class MyThread implements Runnable { |
实现Callable接口
1 | class MyThread2 implements Callable<Integer> { |
总结
相比于继承 Thread 类,通过 Runnable 接口实现多线程的优势:
- 任务与线程解耦合,提高代码的健壮性
- 避免了 Java 单继承的弊端,防止因为继承其他类而无法继承 Thread 类
- 在使用线程池时,只能传入 Runnable 或 Callable 类型的对象,不能传入 Thread 类型的对象
相比于前两种创建线程的方式,线程池的优势:
- 降低资源消耗,线程可以多次利用,降低线程创建和销毁的开销
- 提高响应速度,线程池已经提前创建好线程,免去线程创建的时间
- 方便对线程的管理,例如:可以设定线程的最大容量,防止服务器因线程过多的而崩溃
参考文献
评论