• 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和主线程,我们想让线程一在线程二前结束,线程二在主线程前结束
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    减少 try catch ,可以这样干
    MySQL作业1
    面试题: Spring中Bean的实例化和Bean的初始化有什么区别?
    【2022】二进制方式部署etcd高可用集群
    安卓恶意应用识别(二)(安卓APK反编译)
    Socket,Servlet,Tomcat
    Kubernetes Pod内存监控
    Uniapp自定义动态加载组件(2024.7更新)
    51.【Java String方法的小结】
    拒绝遗忘:高效的动态规划算法
  • 原文地址:https://blog.csdn.net/weixin_62877993/article/details/125952442