社区
Java SE
帖子详情
弱弱的问一下java线程有几个状态??所谓“阻塞”到包含什么??
songchunyi
2010-12-15 07:21:44
我觉这就有:创建,就绪,运行,阻塞,停止
可老师说有七个状态,我到现在也不清楚
欢迎高手
...全文
1008
17
打赏
收藏
弱弱的问一下java线程有几个状态??所谓“阻塞”到包含什么??
我觉这就有:创建,就绪,运行,阻塞,停止 可老师说有七个状态,我到现在也不清楚 欢迎高手
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Zach_ZhouY
2010-12-24
打赏
举报
回复
http://wenku.baidu.com/view/ea967a09581b6bd97f19ea78.html
里面有对Java线程的详细介绍 是Word文档 不错的 推荐你看
night__cat
2010-12-24
打赏
举报
回复
轮流享用cpu
wenlin56
2010-12-18
打赏
举报
回复
忘了广告:http://blog.csdn.net/wenlin56
原创 android、struts、lucene、spring-survey 教程
wenlin56
2010-12-18
打赏
举报
回复
一条路,只能供一个人过,现在一个大胖子吃太多了,说要倒在路边睡一觉,等消化好了再走。那么没办法,后面要过的人,只有等着胖子消化完了,醒过来了,再走。
多线程的解决方案是,后面有聪明人士,想干脆不走这条路,于是从旁开一条路,两条路互不影响。
py330316117
2010-12-18
打赏
举报
回复
百度查不到吗??? 去搜索cpu的状态基本上和java线程的状态一样,学过操作系统应该能知道,都是内存的状态问题
yaochunpin
2010-12-18
打赏
举报
回复
阻塞就是堵在那呗,等收到服务器或客户端的连接要求或数据包时在执行下面的代码!O(∩_∩)O~我的理解,也是一知半解的!他们说的好高深,不懂!
zn85600301
2010-12-16
打赏
举报
回复
[Quote=引用 2 楼 eswn 的回复:]
等待和池锁是阻塞的一种
实际来说对于编码来说,Java对外只有五/六种状态:
BLOCKED,NEW,RUNNABLE,TERMINATED,TIMED_WAITING/WAITING
[/Quote]
恩 大家都说的挺好
5,6,7种都无所谓 你了解线程的生命周期和使用方法就好了
yukiMark
2010-12-16
打赏
举报
回复
什么情况下会用到多线程呢 ?
fantasy0126
2010-12-16
打赏
举报
回复
[Quote=引用 6 楼 dyllove98 的回复:]
BLOCKED,NEW,RUNNABLE,TERMINATED,TIMED_WAITING/WAITING
[/Quote]
从java se5 开始吧就是这6种 Thead类的
public Thread.State getState()
uastation
2010-12-15
打赏
举报
回复
1、新状态:线程对象已经创建,还没有在其上调用start()方法。
2、可运行状态:当线程有资格运行,但调度程序还没有把它选定为运行线程时线程所处的状态。当start()方法调用时,线程首先进入可运行状态。在线程运行之后或者从阻塞、等待或睡眠状态回来后,也返回到可运行状态。
3、运行状态:线程调度程序从可运行池中选择一个线程作为当前线程时线程所处的状态。这也是线程进入运行状态的唯一一种方式。
4、等待/阻塞/睡眠状态:这是线程有资格运行时它所处的状态。实际上这个三状态组合为一种,其共同点是:线程仍旧是活的,但是当前没有条件运行。换句话说,它是可运行的,但是如果某件事件出现,他可能返回到可运行状态。
5、死亡态:当线程的run()方法完成时就认为它死去。这个线程对象也许是活的,但是,它已经不是一个单独执行的线程。线程一旦死亡,就不能复生。 如果在一个死去的线程上调用start()方法,会抛出java.lang.IllegalThreadStateException异常。
引自:http://lavasoft.blog.51cto.com/62575/99153
uastation
2010-12-15
打赏
举报
回复
1、线程的实现有两种方式,一是继承Thread类,二是实现Runnable接口,但不管怎样,当我们new了这个对象后,线程就进入了初始状态;
2、当该对象调用了start()方法,就进入可运行状态;
3、进入可运行状态后,当该对象被操作系统选中,获得CPU时间片就会进入运行状态;
4、进入运行状态后情况就比较复杂了
4.1、run()方法或main()方法结束后,线程就进入终止状态;
4.2、当线程调用了自身的sleep()方法或其他线程的join()方法,就会进入阻塞状态(该状态既停止当前线程,但并不释放所占有的资源)。当sleep()结束或join()结束后,该线程进入可运行状态,继续等待OS分配时间片;
4.3、线程调用了yield()方法,意思是放弃当前获得的CPU时间片,回到可运行状态,这时与其他进程处于同等竞争状态,OS有可能会接着又让这个进程进入运行状态;
4.4、当线程刚进入可运行状态(注意,还没运行),发现将要调用的资源被synchroniza(同步),获取不到锁标记,将会立即进入锁池状态,等待获取锁标记(这时的锁池里也许已经有了其他线程在等待获取锁标记,这时它们处于队列状态,既先到先得),一旦线程获得锁标记后,就转入可运行状态,等待OS分配CPU时间片;
4.5、当线程调用wait()方法后会进入等待队列(进入这个状态会释放所占有的所有资源,与阻塞状态不同),进入这个状态后,是不能自动唤醒的,必须依靠其他线程调用notify()或notifyAll()方法才能被唤醒(由于notify()只是唤醒一个线程,但我们由不能确定具体唤醒的是哪一个线程,也许我们需要唤醒的线程不能够被唤醒,因此在实际使用时,一般都用notifyAll()方法,唤醒有所线程),线程被唤醒后会进入锁池,等待获取锁标记。
引自:http://webservices.ctocio.com.cn/java/423/9092423.shtml
Jlins
2010-12-15
打赏
举报
回复
BLOCKED,NEW,RUNNABLE,TERMINATED,TIMED_WAITING/WAITING
龙四
2010-12-15
打赏
举报
回复
说白了,jvm不就是一个微型的操作系统么
《现代操作系统》一书中就有关于虚拟机中线程的实现的介绍,有些科班用的这本书吧?
[Quote=引用 4 楼 ileson 的回复:]
引用 3 楼 ticmy 的回复:
科班不都要学《操作系统》这门课么?!
但科班不讲jvm是怎么设计的。
[/Quote]
Leson_Yin
2010-12-15
打赏
举报
回复
[Quote=引用 3 楼 ticmy 的回复:]
科班不都要学《操作系统》这门课么?!
[/Quote]
但科班不讲jvm是怎么设计的。
龙四
2010-12-15
打赏
举报
回复
科班不都要学《操作系统》这门课么?!
eswn
2010-12-15
打赏
举报
回复
等待和池锁是阻塞的一种
实际来说对于编码来说,Java对外只有五/六种状态:
BLOCKED,NEW,RUNNABLE,TERMINATED,TIMED_WAITING/WAITING
shaosijun2004
2010-12-15
打赏
举报
回复
http://wenku.baidu.com/view/ea967a09581b6bd97f19ea78.html
楼主SEE SEE吧,图文教程
java
面试题,180多页,绝对良心制作,欢迎点评,涵盖各种知识点,排版优美,阅读舒心
创建了
几个
字符串对象 30 【基础】接口是否可继承(extends)接口?抽象类是否可实现(implements)接口?抽象类是否可继承具体类(concrete class) 30 【基础】一个".
java
"源文件中是否可以
包含
多个类(不是内部类...
java
线程
的五大
状态
,
阻塞
状态
详解
一个
线程
的生命周期里有五大
状态
,分别是: 新生 就绪 运行 死亡 运行后可能遇到的
阻塞
状态
二、相关方法 2.1 新生
状态
Thread t = new Thread(); 正如我们前面所说的,一个
线程
开始之后有自己的内存空间,这些...
java
多
线程
面试题整理(更新......)
3、什么是同步执行和异步执行4、
Java
中实现多
线程
有几种方法?(较难)(1)继承Thread类(2)实现runable接口(3)实现Callable接口(创建FutureTask(Callable)对象)5、Future接口,Callable接口,FutureTask实现类的...
Java
中的
线程
和锁机制
创建
线程
有哪几种方式? 什么是
线程
死锁?
线程
死锁怎么产生?怎么避免?
线程
run和start的区别?
线程
都有哪些方法? volatile底层原理 AQS原理 synchronized的用法有哪些? Synchronized的作用有哪些? ...
Java
线程
相关的热门面试题
Java
线程
相关的热门面试题,你可以用它来好好准备面试。什么是
线程
?什么是
线程
安全和
线程
不安全?什么是自旋锁?什么是
Java
内存模型?什么是CAS?什么是乐观锁和悲观锁?什么是AQS?什么是原子操作?在
Java
...
Java SE
62,614
社区成员
307,326
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章