标签:style blog http io color ar java sp for
中断线程:Thread.sleep() 和 Thread.yield()
在线程体中调用Thread. sleep()时需要向括号内传入参数:毫秒,一旦线程执行了这方法则进入休眠状态,不再运行程序并让出cpu执行时间。当过了休眠时间后,线程并不会马上进入运行状态,而是进入就绪状态与其他线程抢占cpu执行时间。
//定义用于实现接口Runnable的类
class RunnableImp implements Runnable{
//复写Runnable唯一的方法run
public void run(){
for(int i = 0;i < 10; i++){
System.out.println("Runnable-->" + i);
if(i == 5){
try{
Thread.sleep(3000); //休眠3000毫秒
}
catch(Exception e){
System.out.println(e);
}
}
}
}
}
class Test{
public static void main(String args[]){
//生成RunnableImp的对象
RunnableImp ri = new RunnableImp();
//将ri传入,生成Thread对象
Thread t = new Thread(ri);
//调用Thread的start方法
t.start();
}
}
当程序运行到i的值为5时,会停留3000毫秒后再继续运行。
在线程体中调用Thread.yield()时,当运行到这行代码时,当前线程自动让步,不在占用cpu执行时间进入就绪状态,与其他线程再次抢占cpu执行时间,并不能保证其他线程能被执行。
设置线程的优先级: getPriority() 和 setPriority()
class Test{
public static void main(String args[]){
RunnableImp ri = new RunnableImp();
Thread t = new Thread(ri);
//获取线程t的默认优先级
System.out.println(t.getPriority());
//设置线程的最大优先级
t.setPriority(Thread.MAX_PRIORITY);
System.out.println(t.getPriority());
//设置线程的最小优先级
t.setPriority(Thread.MIN_PRIORITY);
System.out.println(t.getPriority());
t.start();
}
}

线程的最大优先级为10,最小优先级为1,可以通过Thread提供的静态常量来设置线程的优先级。优先级越高的线程执行的概率就越大
标签:style blog http io color ar java sp for
原文地址:http://www.cnblogs.com/chavez-wang/p/4090628.html