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();
        }
    }
}
public class MyThread1 implements Runnable {
    private String name;

    public MyThread1(String name) {
        this.name = name;
    }

    @Override
    public void run() {
        for (int i = 0; i < 100; i++) {
            System.out.println(this.name + i);
        }
    }
}
public class MyThread2 extends Thread{
    private String name;

    public MyThread2(String name) {
        this.name = name;
    }

    @Override
    public void run() {
        for (int i = 0; i < 100; i++) {
            System.out.println(this.name + i);
        }
    }
}
public class MyThread3 implements Callable<String> {
    private String name;

    public MyThread3(String name) {
        this.name = name;
    }

    @Override
    public String call() throws Exception {
        for (int i = 0; i < 100; i++) {
            System.out.println(this.name + i);
        }
        return "ZZZZ";
    }
}








posted @ 2021-12-01 22:36  羽毛球打的贼好  阅读(142)  评论(0)    收藏  举报