A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Dej@vu 中级黑马   /  2013-8-4 10:11  /  1119 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

线程的生命周期:
1,初始状态  :此时线程只处于jvm进程中,只是创建了一个线程对象,并没有真正开始运行
2,可动行状态:调用线程对象的start()方法,此时线程才真正的被创建 进入可行状态,等待cpu的调度“万事俱备 只欠cpu”
3,运行状态:正在运行的线程,此时它拥有cpu的执行权
4,阻塞状态:运行状态中的线程,如果在等待用户输入或调用sleep()和join()方法都会导致阻塞,不一定马上回到运行状态而是回到可运行状态 等待cpu的再次调度
5,排队状态:一个线程调用一个对象的wait()会自动放弃该对象的锁标记。进入等待状态,只有当有另外一线程调用临界资源的notify()notifyAll()方法,建议使用notifyAll()才会将等待队列中的线程释放,进入锁池状态
6, 锁池状态:每个对象都有互斥锁标记,以防止对临界资源的访问造成数据的不一致 ,和数据的不完整性。一个线程拥有一个对象的锁标记后,另一线程访问该对象,必须在锁池中等待。由系统决定那个线程拿到锁标记并运行,注意从锁池状态出来的线程不是马上回到运行状态,而是重新回到可运行状态。等待cpu的调度
7,终止状态:一个线程运行结束后成为终止状态,一个进程中只有所有线程推出后才能终止。

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1 赞一个!

查看全部评分

2 个回复

倒序浏览
有个小例子或者画图说明就更好了
回复 使用道具 举报

五个状态:新建,就绪状态,运行状态,阻塞状态,消亡。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马