关于线程运行状态的理解

关于在华清学习中的收获。

目录

前言

一、线程是什么?

二、线程运行的几种状态 

1.新建状态  (new)

2.就绪状态  (Runnable) 

3.运行状态(Running)

4.阻塞状态(Blocked)

5.超时等待状态  (Time_Waiting )

6.终止状态  (Terminated )

三、线程状态转换过程

总结


前言

在华清学习的所思所想


一、线程是什么?

线程是指进程中的一个执行流程,一个进程中可以运行多个线程。比如java.exe进程中可以运行很多线程。线程总是属于某个进程,进程中的多个线程共享进程的内存。

二、线程运行的几种状态 

1.新建状态  (new)

新创建了一个线程对象

2.就绪状态  (Runnable) 

线程对象创建后,其它线程调用了该对象的start方法

3.运行状态(Running)

就绪状态的线程获取到了cpu的时间片,执行程序代码。

4.阻塞状态(Blocked)

阻塞状态是线程因为某种原因放弃cpu,暂停或停止运行,直到线程进入就绪状态,有机会获得cpu后转入运行状态。

5.超时等待状态  (Time_Waiting )

有确定结束时间的等待状态

6.终止状态  (Terminated )

线程结束完成之后就会变成此状态

三、线程状态转换过程

New 表示线程被创建但尚未启动的状态:当我们用 new Thread() 新建一个线程时,如果线程没有开始运行 start() 方法,所以也没有开始执行 run() 方法里面的代码,那么此时它的状态就是 New。而一旦线程调用了 start(),它的状态就会从 New 变成 Runnable。

Java 中处于 Runnable 状态的线程有可能正在执行,也有可能没有正在执行,正在等待被分配 CPU 资源。

在 Java 中阻塞状态通常不仅仅是 Blocked,实际上它包括三种状态,分别是 Blocked(被阻塞)、Waiting(等待)、Timed Waiting(计时等待),这三种状态统称为阻塞状态。

在 Waiting 和timed Waiting 状态,这两个状态是非常相似的,区别仅在于有没有时间限制,Timed Waiting 如果等待超时,由系统自动唤醒,或者在超时前被唤醒信号唤醒。

线程从 New 状态是不可以直接进入 Blocked 状态的,它需要先经历 Runnable 状态。

run() 方法执行完毕,线程正常退出。


总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了线程的六种状态,以及线程状态之间的转换。

  • 9
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值