亲宝软件园·资讯

展开

Java 线程 Java线程的全方位详解

吾日三省贾斯汀 人气:0
想了解Java线程的全方位详解的相关内容吗,吾日三省贾斯汀在本文为您仔细讲解Java 线程的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:Java,线程,Java,Thread,下面大家一起来学习吧。

❤️‍大家好,我是贾斯汀,今天主要聊一聊关于线程的瓜!❤️‍

先来看一下线程这张图线程的几种运行状态之间运行流程:

在这里插入图片描述

看不懂没关系,慢慢来学习,往下学习来继续了解一下~

什么是线程?

在这里插入图片描述

线程的几种创建方式?

主要由四种方式创建线程:

在这里插入图片描述

具体每一种创建方式说明及代码实现如下:

/**
 * 创建Thread线程的四种方式之内部类写法
 */
public class NewThread {

    public static void main(String[] args) throws Exception {

        //方式1
        Thread t1 = new Thread(){
            @Override
            public void run() {
                System.out.println("方式1:继承Thread类并重写run()方法创建线程,无返回值");
            }
        };
        t1.start();
        Thread.sleep(1000);

        //方式2
        Thread t2 = new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println("方式2:实现Runnable接口并重写run()方法创建线程,无返回值");
            }
        });
        t2.start();
        Thread.sleep(1000);

        //方式3
        FutureTask<String> ft = new FutureTask<>(new Callable<String>() {
            @Override
            public String call() throws Exception {
                String result = "方式3:实现Callable接口并重写call()方法新建FutureTask对象作为new Thread实例化参数创建线程,有返回值";
                return result;
            }
        });
        Thread t3 = new Thread(ft);
        t3.start();
        System.out.println(ft.get()); //输出返回值

        Thread.sleep(1000);

        //方式4
        ExecutorService pool = Executors.newFixedThreadPool(5);
        Future<String> future = pool.submit(new Callable<String>(){
            @Override
            public String call() throws Exception {
                String result = "方式4:通过工具类Executors创建线程池,调用submit新建Future对象并重写Callable接口重写call()方法创建线程,有返回值";
                return result;
            }
        });
        pool.shutdown();//关闭线程池
        System.out.println(future.get()); //输出返回值
    }
}

线程的几种状态?

在这里插入图片描述

线程相关的核心方法及作用?

加载全部内容

相关教程
猜你喜欢
用户评论