首页 > 其他分享 >10 线程的状态

10 线程的状态

时间:2023-06-29 23:34:50浏览次数:32  
标签:10 状态 WAITING 线程 阻塞状态 CPU 运行

10 线程的状态

操作系统层面的线程状态

  1. 初始状态

    仅是在语言层面创建了线程对象,还未与操作系统线程关联。

  2. 可运行状态(就绪状态)

    指该线程已经被创建(与操作系统线程关联),可以由 CPU 调度执行。

  3. 阻塞状态

    • 如果调用了阻塞 API,如 BIO 读写文件,这时该线程实际不会用到 CPU,会导致线程上下文切换,进入

      阻塞状态

    • 等 BIO 操作完毕,会由操作系统唤醒阻塞的线程,转换至可运行状态

    • 可运行状态的区别是,对阻塞状态的线程来说只要它们一直不唤醒,调度器就一直不会考虑

      调度它们。

  4. 运行状态

    指获取了 CPU 时间片运行中的状态。当 CPU 时间片用完,会从运行状态转换至可运行状态,会导致线程的上下文切换。

  5. 终止状态

    表示线程已经执行完毕,生命周期已经结束,不会再转换为其它状态 。

JAVA层面的线程状态

  1. NEW

    线程刚被创建,但是还没有调用 start() 方法

  2. RUNNABLE

    当调用了 start() 方法之后,注意,Java API 层面的 RUNNABLE 状态涵盖了 操作系统 层面的 可运行状态运行状态阻塞状态(由于 BIO 导致的线程阻塞,在 Java 里无法区分,仍然认为是可运行)。

  3. BLOCKED , WAITING , TIMED_WAITING 都是 Java API 层面对阻塞状态的细分

    • WAITING:表示可能会永无止境的等待。
    • TIMED_WAITING:表示有限时间的等待。
    • BLOCKED:等待监视器锁的线程的线程状态;处于阻塞状态的线程正在等待监视器锁; 进入同步块/方法或调用后重新进入同步块/方法。
  4. TERMINATED

    当线程代码运行结束。

标签:10,状态,WAITING,线程,阻塞状态,CPU,运行
From: https://www.cnblogs.com/miaoyindian/p/17515462.html

相关文章

  • C语言学习笔记:1~10章---基本知识
    基本知识2023-06-2923:14:18 1#include<stdio.h>2intmain(void)/*asimpleprogram*/3{4intnum;/*defineavariablecallednum*/5num=1;/*assignavaluetonum......
  • 第10.3篇 html基础标签
    HTML一、HTML简介1.什么是HTMLHTML:HyperTextMarkupLanguage,超文本标记语言。作用:编写网页。2.写一个简单的HTML<html><head><title>pagetitle</title></head><body><fontcolor="red">hello,kitty&......
  • matlab simulink电机foc观测器模型,采用龙贝格观测器+PLL进行无传感器控制,其利用 PMSM
    matlab simulink电机foc观测器模型,采用龙贝格观测器+PLL进行无传感器控制,其利用PMSM数学模型构造观测器模型,根据输出的偏差反馈信号来修正状态变量。当观测的电流实现与实际电流跟随时,利用估算的反电势进行pll计算转子位置信息。龙伯格观测器采用线性控制策略代替了SMO的变......
  • 10种经典的时间序列预测模型 本文演示了 10 种不同的经典时间序列预测方法
    [matlab]10种经典的时间序列预测模型本文演示了10种不同的经典时间序列预测方法,它们是1)自回归(AR)2)移动平均线3)自回归移动平均线4)自回归积分移动平均线(ARIMA)5)季节性自回归积分移动平均线(SARIMA)6)具有外生回归量的季节性自回归综合移动平均线(SARIMAX)......
  • ErrorCode17410(No more data to read from socket)错误
    系统运行的过程中莫名其妙出现ErrorCode17410(Nomoredatatoreadfromsocket)错误,只是某一个功能的sql执行出现,但是把sql语句复制到plsql执行又没问题,后面尝试对数据库的进程都清理就好了,应该是进程占用出了问题,具体命令如下ps-ef|grepLOCAL=NO|grep-vgrep|awk'{pri......
  • 610. 判断三角形
    610.判断三角形SQL架构表: Triangle+-------------+------+|ColumnName|Type|+-------------+------+|x|int||y|int||z|int|+-------------+------+(x,y,z)是该表的主键列。该表的每一行包含三个线段的长度......
  • 紫光fpga logos2 pango design 开发工具 黑金 axp100开发板资料
    紫光fpga logos2 pangodesign开发工具黑金axp100开发板资料带ddr以及高速收发器例子有双相机采集存储ddr后进行hdmi输出叠加显示的工程包含1多个例子工程    2ddr与hsst ip    3ddr使用手册    4例子工程教程原创文章,转载请说明......
  • python线程简单使用
    简单使用python定义多线程列子,供读者参考:在下面的示例中,我们定义了两个函数func1和func2,它们都将在新线程中运行。然后,我们使用threading.Thread构造函数创建了两个新线程,并将func1和func2函数作为目标。最后,我们启动了两个线程,并使用join方法等待它们结束。但需要注意的是,如......
  • 江西服务器出租,游戏服务器配置该如何选择?103.219.28.X
    江西服务器的稳定性和安全性虽说没有宁波和杭州的那么好,但是机器的应用领域也是不同的,目前江西有3大数据中心,江西南昌电信机房、新余数据中心和吉安电信机房。江西南昌机房经过数年的发展与扩容,截止2011年12月出口带宽总量已达200G,托管设备3000多台。新余数据中心有骨干光缆直连Chi......
  • 「路飞项目10」redis
    1redis列表操作importredisconn=redis.Redis(decode_responses=True)1lpush(name,values)#在name对应的list中添加元素,每个新的元素都添加到列表的最左边#rpush(name,values)表示从右向左操作#如果name不存在的话会新增nameconn.lpush('hobbys','篮球')conn......