Java 创建多线程的三种方式

霄
2022-03-25 / 0 评论 / 82 阅读 / 正在检测是否收录...

1.继承Thread 类(重点)

说明:继承thread类,重写run方法,调用start开启线程

code:

public class TestThread extends Thread {
    @Override
    public  void run(){
        //run方法线程体
        for (int i = 0; i < 200; i++) {
            System.out.println("我在看代码~~");
        }
    }
    public static void main(String[] args) {
        TestThread testThread = new TestThread();
        testThread.start();
        for (int i = 0; i < 200; i++) {
            System.out.println("我在学习多线程~~");
        }
    }
}

2.实现Runnable接口(重点)

实现runnable接口,重写run方法,执行线程需要丢入runnable的实现类,调用start方法

code:


public class TestRunnable implements Runnable {
    @Override
    public  void run(){
        //run方法线程体
        for (int i = 0; i < 200; i++) {
            System.out.println("我在看代码~~");
        }
    }

    public static void main(String[] args) {
        TestRunnable testRunnable = new TestRunnable();
        new Thread(testRunnable).start();

        for (int i = 0; i < 200; i++) {
            System.out.println("我在学习多线程~~");
        }
    }
}

3.实现Callable接口

1.实现Callable接口,需要返回值类型;

2.重写call方法,需要抛出异常

3.创建目标对象

4.创建执行服务:ExecutorService ser = Executors.newFixedThreadPool(1);

5.提交执行:Future result = ser.submit(t1)

6.获取结果:boolean b = result.get()

7.关闭服务:ser.shutdownNow();

code:

总结:

1.线程开启不一定执行,由CPU调度

2.不建议使用Thread类:避免OOP单继承局限性

3.推荐使用Runnable接口:避免OOP单继承局限性,灵活方便,方便同一个对象被多个线程使用

4.Callable可以定义返回值可以抛出异常

扫描二维码,在手机上阅读!
40

评论

博主关闭了当前页面的评论