• Thread 类的基本用法


    @[TOC]目录
    ##Thread 类的基本用法

    线程的创建

    我们介绍5种创建线程的方法:
    方法一:创建一个类,继承Thread类,重写run()方法
    在这里插入图片描述
    注意:我们并不要认为创建好相关的类以后线程就创建好了,我们还需要创建相对应的实例,并且调用start()方法,一个线程才算创建好了,并且启动了。
    在这里插入图片描述
    方法二:创建一个类,并且实现Runnable接口,并且重写run()方法
    在这里插入图片描述
    在这里插入图片描述
    这种写法的好处是:代码的耦合度降低了
    方法三:继承Thread类,以匿名内部类的形式创建
    在这里插入图片描述
    方法四:实现Runnable接口,以匿名内部类的形式创建

    在这里插入图片描述
    方法五:使用lambda表达式来创建线程(推荐使用)
    在这里插入图片描述

    如何获取线程实例

    我们在获取实例化对象的时候,我们一般是通过 new 构造方法 的形式来获取对象。所有说,一种很简单获取线程实例的方法是通过 new 构造方法。 但是,我想问的是,我们在创建一个线程类的时候,如何获取该线程的实例。 比较简单使用:Thread.currentThread()就可以了

    线程休眠

    线程休眠:在规定的时间内,线程不能运行,直到到达规定的时间才可以运行。
    我们通过 Thread.sleep(自己规定的时间(单位是:毫秒(ms)))
    这个方法会抛出异常,需要我们手动地解决一下。
    在这里插入图片描述

    线程中断

    有的时候,一个进程中多个线程在执行的时候,有的情况下,有的线程需要中断,这里我提供两种线程中断的方法

    方法一:自己设置一个公有变量当作一个标识位
    在这里插入图片描述

    方法二:使用Thread自己带的标识位(重点,难点)

    情况一:
    在这里插入图片描述

    情况二:
    在这里插入图片描述
    我们可以看出第二种情况线程并没有中断,只是报一个异常然后接着运行
    我们要知道interrupt()方法是如何执行
    在这里插入图片描述

    线程的等待

    使用方式:Thread对象.join();
    我们无法规定线程的开始执行的顺序,但是我们可以通过join()方法规定线程结束的顺序

    哪一个线程调用了join方法,其他线程要等待该线程执行完,他们才能结束
    在这里插入图片描述
    例如:我们有线程1,线程2和主线程,我们想让线程一和线程二执行完后,主线程在执行结束
    在这里插入图片描述
    我们有线程1,线程2和主线程,我们想让线程一在线程二前结束,线程二在主线程前结束
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    Cesium 展示——移除已加载的geojson文件效果
    fusion cube
    有 AI,无障碍,AIoT 设备为视障人群提供便利
    django基础02--一个基于数据库的小项目
    【RHCE】计划任务的练习题
    【无标题】
    读取Excel的工具类——ExcelKit
    pandas教程:Pivot Tables and Cross-Tabulation 数据透视表和交叉表
    南京大学计院夏令营历年机试笔试题汇总(刷题版)
    Mybatis框架的搭建和基本使用
  • 原文地址:https://blog.csdn.net/weixin_62877993/article/details/125952442