多线程基础知识

线程的生命周期:

A线程新建完成之后,会进入就绪状态。就绪阶段当拿到Cpu资源之后就会执行,进入运行阶段,运行过程中可能会被别的线程资源抢占,此时A线程进入阻塞状态,阻塞过程中抢占A线程的资源执行完毕了,把资源设置非占用状态,A线程就会开始抢资源并进入就绪状态,如果A线程得到处理器资源了,重新进入运行状态,让运行状态执行完run方法或者Call方法之后,就会进入死亡销毁状态。

阻塞状态,运行状态,就绪状态线程都可能进入死亡状态。

新建状态:创建线程对象,JVM为线程分配内存,初始化成员变量值。

就绪状态:有执行资格,但没执行权,JVM为线程创建方法栈和程序计数器,等待线程调度器调用

阻塞状态:没有执行资格,没有执行权,

线程调用sleep()方法,主动放弃CPU资源

线程调用了一个阻塞式IO方法,在该方法返回前,线程为阻塞状态

线程试图获得一个同步锁(同步监视器)在该同步锁正在被其他线程所持有

线程在等待某个通知(notify)

线程调用了Suspend方法将该线程挂起,但这个方法容易导致死锁,尽量避免使用该方法

运行状态:有执行权,执行资格,就绪状态的线程获取到CPU资源,开始运行run()方法,该线程进入运行状态,

Run()或者Call()方法执行结束后

线程抛出一个未捕获的exception或Error

调用线程stop方法结束线程,该方法容易导致死锁,不推荐使用。

死亡状态:对象变为垃圾等待回收

在main方法中new一个线程,将有俩个线程启动。一个是main方法,一个为当前线程。

同一个线程不能俩次start()方法,会抛出IllegalThreadStateException这个异常。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值