【Thread方法详解】


前言

注意:本文所有内容都是基于JDK 1.8

随着计算机的不断发展,人们可以在计算机同时上播放音乐,玩游戏,和朋友聊天,这些功能其实都是由很多个线程参与工作实现的。而对于开发人员来说,线程的知识已经成为了必须要掌握的部分。


一、Thread 是什么

Thread 类是java.lang包下的一个类,我们创建的线程都是这个类的实例。内部常用方法如下:
在这里插入图片描述

通过下列代码可以观察到,创建线程的三种常规方式最终都是通过 new Thread() 创建的。

package com.curtis.demo.use;

import java.util.Arrays;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;

/**
 * @author Curtis
 * @since 2024-04-18 20:51
 */
public class ThreadTestDemo {
   

    public static void main(String[] args) {
   
        System.out.println(Thread.currentThread().getName() + ": ThreadTestDemo is running");
        MyCallable myCallable = new MyCallable();
        FutureTask<String> futureTask = new FutureTask<>(myCallable);
        new Thread(futureTask).start();

        MyThread myThread = new MyThread();
        myThread.start();

        new Thread(new MyRunnable()).start();

        try {
   
            System.out.println(futureTask.get());
        } catch (InterruptedException | ExecutionException e) {
   
            System.out.println(Arrays.toString(e.getStackTrace()));
        }
    }
}

二、Thread 方法

1.Thread.start()和Thread.run()

执行 start() 方法会新启动一个线程去执行线程当中的 run() 方法。而直接执行 run() 方法实际是在当前线程上直接执行了run() 方法,并不会另起一个线程执行。

观察下列代码和输出结果:

package com.curtis.demo.use;

/**
 * @author Curtis
 * @since 2024-04-18 20:54
 */
public class MyRunnable implements Runnable {
   
    @Override
    public void run() {
   
        System.out.println(Thread.currentThread().getName() + ": MyRunnable.run");
    }
}


package com.curtis.demo.use;

/**
 * @author Curtis
 * @since 2024-04-18 20:51
 */
public class ThreadTestDemo {
   

    public static void main(String[] args) {
   
        MyRunnable runnable = new MyRunnable();
        Thread thread = new Thread(runnable);
        // 设置线程名称
        thread.setName("use start thread");
        thread.start();

        Thread thread1 = new Thread(runnable);
        thread1.setName("use run thread");
        thread1.run()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值