线程的五种基本状态
线程的五种基本状态:初始化、可运行、运行、阻塞、终止
阻塞状态分为:等待阻塞、同步阻塞、其他阻塞三种方式
等待阻塞:调用某锁对象的wait方法可使当前线程进入等待阻塞状态,并且该线程放弃所有资源(包括cpu资源和锁资源)并且释放锁标记,jvm会把该线程放入等待池中,而且不会自动唤醒该线程,必须由其他线程调用同一锁对象的notify方法或notifyAll方法或者wait时间到则该线程进入锁池状态,并根据jvm的调度重新获取锁资源。获取到锁资源的线程进入就绪状态并等待cpu的调度。
同步阻塞:线程获取synchronized同步锁失败进入阻塞状态
其他阻塞:sleep()方法或join()方法,该类型阻塞会自动唤醒,sleep()超时,join()等待子线程完成后线程会自动唤醒而处于就绪状态,该状态不会释放锁资源,但会释放CPU()资源,会暂时放弃对CPU的占有。
猜你喜欢
blog
线程的状态
java基础
3362
线程共包括以下5种状态。1.新建状态(New):线程对象被创建后,就进入了新建状态。例如,Threadthread=newThread()。2.就绪状态(Runnable):也被称为“可执行状态
ofc
进程的状态与转换
official
1080
《操作系统》进程的三种基本状态进程是程序的一次执行。在这个执行过程中,有时进程正在被CPU处理,有时又需要等待cPu服务,可见,进程的状态是会有各种变化。为了方便对各个进程的管理,操作系统需要将进程
blog
java启动线程的两种方式
java基础
4738
java启动线程的三种方式1.继承Thread类,重写run方法,调用start方法启动线程2.实现Runnable接口,重写run方法,调用start方法启动线程3.实现Callable接口代码如
blog
线程之间的通讯
java基础
3309
1.什么是线程通信线程之间通信的两个基本问题是互斥和同步。线程同步是指线程之间所具有的一种制约关系,一个线程的执行依赖另一个线程的消息,当它没有得到另一个线程的消息时应等待,直到消息到达时才被唤醒
ofc
进程和线程的区别
weblog
1304
根本区别:进程是操作系统资源分配的基本单位,而线程是处理器任务调度和执行的基本单位。包含关系:一个进程内可以有多个线程(默认有一个主线程),线程是进程的一部分,必须依赖于进程而存在,不能独立存在。资源共享:进程之间是不共享资源的,多个线程之间是共享资源的,所以存在资源竞争的问题。
java基础
2462
程的中断状态,但是不会终止当前线程的运行,那么此线程终止不终止还是取决于线程中的代码。isInterrupted():该方法用来判断某线程的终端状态,返回true/falseinterrupted():
official
921
《计算机组成原理》运算器的基本组成如下运算器的基本组成控制器的基本组成控制器的基本组成完成一条指令的步骤完成一条指令的步骤计算机的工作过程过程描述起来非常复杂,不太好描述,我也是截图贴在了这里(原视
java基础
1919
1.先看一下线程的生命周期转换图(学java的此图必背)本篇文章的主要目的不是分析线程的各种状态之间的转换,而主要是研究一下线程之间的通讯机制,以及Object的wait方法和notify方法。所以
目录
没有一个冬天不可逾越,没有一个春天不会来临。最慢的步伐不是跬步,而是徘徊,最快的脚步不是冲刺,而是坚持。