首页 > 代码库 > 控制线程的常用函数
控制线程的常用函数
中断线程: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提供的静态常量来设置线程的优先级。优先级越高的线程执行的概率就越大
控制线程的常用函数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。