控制线程的常用函数

王朝学院·作者佚名  2016-05-28
窄屏简体版  字體: 小  |  中  |  大  |  超大  

控制线程的常用函数中断线程:Thread.sleep() 和 Thread.yield()

在线程体中调用Thread. sleep()时需要向括号内传入参数:毫秒,一旦线程执行了这方法则进入休眠状态,不再运行程序并让出cpu执行时间。当过了休眠时间后,线程并不会马上进入运行状态,而是进入就绪状态与其他线程抢占cpu执行时间。

//定义用于实现接口Runnable的类class RunnableImp implements Runnable{//复写Runnable唯一的方法runpublic 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提供的静态常量来设置线程的优先级。优先级越高的线程执行的概率就越大

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航