java中线程有六种状态:
new、runnable、 blocked、waiting、timed waiting、terminated对于runnable状态:《core java》中说是可能正在运行也可能没有运行。
我在想:如果没有运行,那就肯定处于 阻塞或者等待状态。runnable怎么会包含两种情况?
new、runnable、 blocked、waiting、timed waiting、terminated对于runnable状态:《core java》中说是可能正在运行也可能没有运行。
我在想:如果没有运行,那就肯定处于 阻塞或者等待状态。runnable怎么会包含两种情况?
javadoc里有说明,runnable就是处于运行中的线程状态,要知道线程是CPU随机分配时间执行的,所以即使是运行中的线程,也有可能CPU被系统收回而暂时没有执行,此时,并不会因为CPU被收回而改变线程的状态,也就是说即使这个时候线程停止没有被执行(没有分配到CPU),也还是runnable状态,所以core java里说的是这个意思
http://blog.csdn.net/jiafu1115/article/details/6804386
楼主可以根据字面意思来理解,runnable可运行的意思,既然是"可以运行",当然也可能"不可以运行",可不可以运行是根据有没有获得cpu的使用权。而running是运行中的意思,就是获得cpu使用权。