java中sleep的用法是什么

互联网 20-6-24

java中sleep的用法是:强制当前正在执行的线程休眠(暂停执行),例如:【Thread.sleep(long millis)】当线程睡眠时它不会在苏醒之前返回到可运行状态;当睡眠时间到期后才会返回到可运行状态。

java中sleep的用法是:

Thread.sleep(long millis)Thread.sleep(long millis, int nanos)静态方法强制当前正在执行的线程休眠(暂停执行),以“减慢线程”。

  • 当线程睡眠时,它睡在某个地方,在苏醒之前不会返回到可运行状态。

  • 当睡眠时间到期,则返回到可运行状态。

1、线程睡眠的原因:线程执行太快,或者需要强制进入下一轮,因为Java规范不保证合理的轮换。

2、睡眠的实现:调用静态方法

        try {             Thread.sleep(1000);         } catch (InterruptedException e) {             e.printStackTrace();          }

3、睡眠的位置:为了让其他线程有机会执行,可以将Thread.sleep()的调用放线程run()之内。这样才能保证该线程执行过程中会睡眠。

public class TestSleep {     public static void main(String[] args) {         MyThread2 t1 = new MyThread2("TestSleep");     t1.start();             for(int i=0 ; i <10; i++)               System.out.println("I am Main Thread");    }  }    class MyThread2 extends Thread {        MyThread2(String s) {      super(s);      }         public void run() {     for(int i = 1; i <= 10; i++) {      System.out.println("I am "+getName());      try {       sleep(1000); //暂停,每一秒输出一次       }catch (InterruptedException e) {       return;      }      }    }   }

注意:

  • 1、线程睡眠是帮助所有线程获得运行机会的最好方法。

  • 2、线程睡眠到期自动苏醒,并返回到可运行状态,不是运行状态。sleep()中指定的时间是线程不会运行的最短时间。因此,sleep()方法不能保证该线程睡眠到期后就开始执行。

  • 3、sleep()是静态方法,只能控制当前正在运行的线程。

实例:一个计数器,计数到100,在每个数字之间暂停1秒,每隔10个数字输出一个字符串

public class MyThread extends Thread {     public void run() {         for (int i = 0; i < 100; i++) {             if ((i) % 10 == 0) {                 System.out.println("-------" + i);             }             System.out.print(i);             try {                 Thread.sleep(1000);                 System.out.print("    线程睡眠1秒!\n");             } catch (InterruptedException e) {                 e.printStackTrace();             }         }     }     public static void main(String[] args) {         new MyThread().start();     } }

推荐教程:《java视频教程》

以上就是java中sleep的用法是什么的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: sleep
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:为何Java中String类是不可变的(详解)

相关资讯