Java进程线程看着一篇就够了
一.多线程相关的概念
cpu: 相当于电池
核数: 相当于充电线
进程: 相当于工厂
线程: 相当于工厂里面的机器
一个应用程序就是一个进程(相当于工厂开工),一个进程至少有一个线程(一个工厂至少有一台机器),多线程就是多台机器同时开工。
多核 就是相当于多条充电线。
二.实现方法
2.1继承Thread类 单继承
实现步骤 创建一个类继承Thread类,重写run方法 + 实例化创建对象 调用start方法
2.2实现Runnable接口 无返回值任务
实现步骤 创建一个类实现Runnable接口,重写run方法 + 实例化创建对象,创建Thread对象,调用start方法
2.3实现Callable接口 有返回值任务
实现步骤 创建一个类实现 Callable接口,重写call方法,实例化对象,创建FutureTask对象,调用start方法
好处对比:
实现方法 | 优缺点 | |
继承Thread类 | java是单继承,无法再继承其他的类 | |
实现Runnable接口 |
1解决单继承的局限性 2 增强了程序的扩展性,贱到底了程序的耦合性(解耦) 实现接口,把设置线程的任务和开启线程进行了解耦 |
|
实现Callable接口 |
public class ThreadTest { public static void main(String[] args) { MyThread1 m1 = new MyThread1("RunableThreadA"); new Thread(m1).start(); MyThread2 m4 = new MyThread2("ThreadA"); m4.start(); MyThread3 m7 = new MyThread3("CallableThreadA"); FutureTask<String> futureTask1 = new FutureTask<>(m7); new Thread(futureTask1).start(); try{ String s = futureTask1.get(); System.out.println(s); }catch (InterruptedException e){ e.printStackTrace(); }catch (ExecutionException e){ e.printStackTrace(); } } }