• 【第八章 Thread类中的常用方法、线程优先级】


    第八章 Thread类中的常用方法、线程优先级、线程生命周期

    1.Thread类中的常用方法
    ①start():启动当前线程,调用当前线程的run();
    ②run():通常需重写Thread类中的此方法,将创建的线程要执行的操作声明在此方法中;
    ③currentThread():静态方法,返回当前代码的线程;
    ④getName():获取当前线程的名字;
    ⑤setName():设置当前线程的名字;
    ⑥yield():释放当前CPU的执行权;
    ⑦join():在线程a中调用线程b的join方法,此时线程a就进入阻塞状态,直到线程b完全执行完以后,线程a才结束阻塞状态;
    ⑧stop():已过时,当执行此方法时,强制结束当前线程;
    ⑨sleep(long millitime):让当前线程睡眠指定的millitime毫秒,在指定的millitime毫秒时间内,当前线程是阻塞状态;
    ⑩isAlive():判断当前线程是否还存活。
    2.线程的优先级
    ①MAX_PRIORITY:10
    MIN _PRIORITY:1
    NORM_PRIORITY:5
    ②如何获取和设置当前线程的优先级
    getPriority() :返回线程优先级
    setPriority(int newPriority) :改变线程的优先级
    ③说明:高优先级的线程要抢占低优先级线程CPU的执行权,但这只是从概率上来讲,高优先级的线程高概率的情况下被执行,并不意味着只有当高优先级的线程执行完以后,低优先级的线程才执行。
    3.线程的生命周期
    ①新建:当一个Thread类或其子类的对象被声明并创建时,新生的线程对象处于新建
    状态;
    ②就绪:处于新建状态的线程被start()后,将进入线程队列等待CPU时间片,此时它已
    具备了运行的条件,只是没分配到CPU资源;
    ③运行:当就绪的线程被调度并获得CPU资源时,便进入运行状态, run()方法定义了线
    程的操作和功能;
    ④阻塞:在某种特殊情况下,被人为挂起或执行输入输出操作时,让出 CPU 并临时中
    止自己的执行,进入阻塞状态;
    ⑤死亡:线程完成了它的全部工作或线程被提前强制性地中止或出现异常导致结束。
    在这里插入图片描述

  • 相关阅读:
    RabbitMQ持久化
    visjs 数据的增删改筛选(DataSet & DataView)
    招聘APP开发的功能特点
    基于人工蜂群算法的无人机航迹规划-附代码
    当一个用户登录时,会引发哪些安全性的思考呢
    无法连接到PGAmin4服务器咋办啊!!
    Log4j日志框架多种日志级别
    编程狂人|淘宝Native研发模式的演进与思考 | DX研发模式
    机器学习绪论
    限时开源,一份“扭转乾坤”的与时俱进的1700页Java八股文
  • 原文地址:https://blog.csdn.net/qq_43742813/article/details/126823519