代码改变世界

线程的状态和常用方法

2016-11-10 23:08  backyyan  阅读(355)  评论(0编辑  收藏  举报

线程的状态
一个线程从创建,启动到终止的整个过程称为线程的生命周期,在其间的任何时刻,线程总是处于某个特定状态。这些状态如下:
新建状态:线程对象已经创建,对应new语句。
就绪状态:就绪状态也可叫做可执行状态,对应start()方法。
运行状态:当处于就绪的线程被调度并获得了cpu等执行必须的资源时,便进入到该状态,即运行了run()方法。
等待/阻碍/睡眠状态;三个状态组合为一种,其共同点是线程仍然是活的,但是当前没有条件运行。换句话说,它是可运行的,如果某个事件出现,它可能返回到可运行状态,对应以下四种情况之一。
调用sleep()方法。
调用wait()方法,等待一个条件变量。
进入阻塞状态。
如果线程中有输入和输出操作,也将进入阻塞状态。
终止状态:终止状态是线程执行结束的状态,没有任何方法可改变它的状态。


线程常用方法
线程常用的方法由以下几种;
public void start();启动线程
public void start();执行线程
public static void sleep(long millis)throws InterruptedExpection:
线程的休眠。休眠时间单位是毫秒(millis)
public static void sleep(long millis,int nanos)throws InterruptedExpection:指定的毫秒数加指定的纳秒数内让当前正在执行的线程休眠。
public final void stop():线程的停止,但该方法具有不安全性。
public static Thread currentThread():得到当前正在运行的线程。
public final String getName():得到线程的名称。


线程一些方法的使用举例:

class MyThread extends Thread{
private int a=0;
public void run(){
for(int a=0;a<10;a++){
System.out.println(currentThread().getName()+":"a);
try{
Thread sleep(100);
}
catch(InterruptedExpection e){
e.printStackTrace();
}
}
}
}
class MyRunneble implements Runnable{