易截截图软件、单文件、免安装、纯绿色、仅160KB

Java线程:线程状态的转换

Java线程:线程状态的转换
 
SCJP5学习笔记
 
一、线程状态
 
线程的状态转换是线程控制的基础。线程状态总的可分为五大状态:分别是生、死、可运行、运行、等待/阻塞。用一个图来描述如下:
 
1、新状态:线程对象已经创建,还没有在其上调用start()方法。
 
2、可运行状态:当线程有资格运行,但调度程序还没有把它选定为运行线程时线程所处的状态。当start()方法调用时,线程首先进入可运行状态。在线程运行之后或者从阻塞、等待或睡眠状态回来后,也返回到可运行状态。
 
3、运行状态:线程调度程序从可运行池中选择一个线程作为当前线程时线程所处的状态。这也是线程进入运行状态的唯一一种方式。
 
4、等待/阻塞/睡眠状态:这是线程有资格运行时它所处的状态。实际上这个三状态组合为一种,其共同点是:线程仍旧是活的,但是当前没有条件运行。换句话说,它是可运行的,但是如果某件事件出现,他可能返回到可运行状态。
 
5、死亡态:当线程的run()方法完成时就认为它死去。这个线程对象也许是活的,但是,它已经不是一个单独执行的线程。线程一旦死亡,就不能复生。 如果在一个死去的线程上调用start()方法,会抛出java.lang.IllegalThreadStateException异常。
 
有关详细状态转换图可以参看本人的“Java多线程编程总结”中的图
 
二、阻止线程执行
对于线程的阻止,考虑一下三个方面,不考虑IO阻塞的情况:
睡眠;
等待;
因为需要一个对象的锁定而被阻塞。
 
1、睡眠
Thread.sleep(long millis)和Thread.sleep(long millis, int nanos)静态方法强制当前正在执行的线程休眠(暂停执行),以“减慢线程”。当线程睡眠时,它入睡在某个地方,在苏醒之前不会返回到可运行状态。当睡眠时间到期,则返回到可运行状态。
 
线程睡眠的原因:线程执行太快,或者需要强制进入下一轮,因为Java规范不保证合理的轮换。
 
睡眠的实现:调用静态方法。
        try {
            Thread.sleep(123);
        } catch (InterruptedException e) {
            e.printStackTrace(); 
      &nb


相关文档:

Java基础——java的引用问题

1.
public class EasyError1 {
     class Student {
           private String name;
 
           public String getName() {
         ......

使用eclipse运行曾经写过的java代码

今天把以前写的java代码拿出来,发现出了好多错误。调了半天,发现是版本的问题,郁闷!
可能之前我写代码的时候用的是JDK1.5,今天从网上下载JDK1.6,没成功。就草草下载了JDK1.5,结果总是提示“could not find the main class. program will exit”。我就到
window-》preference-》java-》compiler把当前的版 ......

java中关键字volatile的作用

用在多线程,同步变量。 线程为了提高效率,将某成员变量(如A)拷贝了一份(如B),线程中对A的访问其实访问的是B。只在某些动作时才进行A和B的同步。因此存在A和B不一致的情况。volatile就是用来避免这种情况的。volatile告诉jvm, 它所修饰的变量不保留拷贝,直接访问主内存中的(也就是上面说的A)
===================== ......

关于Initializing java tooling(1%)

打开eclipse,发现eclipse宕掉了,并且出现这样的提示:关于Initializing java tooling(1%)...
重启了几次之后发现问题仍然存在,因而狂搜了一把,终于找到正确的解决办法,如下:
找到eclipse目录,编辑eclipse.ini文件,在-vmargs参数之前添加上如下参数(一定要像下面这样写成两行),然后重启就ok了
-vm
C:\Progr ......

Java操作Excel方法比较

1. Java读取Excel方式对比
在Java中读写MS Excel文件主要有两种典型的方法
l         Java-To-Com的方式:
(1)   jCom
(2)   Jacob
l         直接Excel文件读写
(3)   jExcel
(4)&nbs ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号