码迷,mamicode.com
首页 > 编程语言 > 详细

控制线程的常用函数

时间:2014-11-11 22:31:23      阅读:319      评论:0      收藏:0      [点我收藏+]

标签: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();
	}
}

bubuko.com,布布扣

线程的最大优先级为10,最小优先级为1,可以通过Thread提供的静态常量来设置线程的优先级。优先级越高的线程执行的概率就越大

控制线程的常用函数

标签:style   blog   http   io   color   ar   java   sp   for   

原文地址:http://www.cnblogs.com/chavez-wang/p/4090628.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!