>  기사  >  Java  >  Java에서 sleep의 사용법은 무엇입니까

Java에서 sleep의 사용법은 무엇입니까

coldplay.xixi
coldplay.xixi원래의
2020-06-24 14:21:4836527검색

Java에서 sleep의 사용법은 다음과 같습니다. 현재 실행 중인 스레드를 강제로 절전 모드(실행 일시 중지)로 지정합니다. 예: [Thread.sleep(long millis)] 스레드가 절전 모드일 때 깨어나기 전에 실행 가능한 상태로 돌아가지 않습니다. ; 수면 중 시간이 만료되면 실행 가능 상태로 돌아갑니다.

Java에서 sleep의 사용법은 무엇입니까

Java에서 sleep 사용법은 다음과 같습니다.

Thread.sleep(long millis)Thread.sleep(long millis, int nanos) 정적 메서드는 현재 실행 중인 스레드를 절전 모드(실행 일시 중지)로 강제 설정하여 "스레드 속도를 늦춥니다". 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()

스레드가 휴면 상태이면 어딘가에서 휴면 상태가 되며 깨어날 때까지 실행 가능한 상태로 돌아가지 않습니다.

  • Sleep 시간이 만료되면 Runnable 상태로 돌아갑니다.

  • 1. 스레드 휴면 이유:

    스레드가 너무 빨리 실행되거나 Java 사양이 합리적인 회전을 보장하지 않기 때문에 강제로 다음 라운드로 진입해야 합니다.
  • 2. 수면 구현:

    정적 메서드 호출
  • .

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;
     }
     }
   }
  }

3. 절전 위치: 다른 스레드에 실행할 기회를 주기 위해 run()Thread.sleep() 호출을 배치할 수 있습니다. /코드> . 이렇게 하면 스레드가 실행 중에 휴면 상태가 됩니다.

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

🎜참고: 🎜🎜🎜🎜🎜1. 스레드 절전은 모든 스레드가 실행될 수 있도록 돕는 가장 좋은 방법입니다. 🎜🎜🎜🎜2. 스레드는 휴면 상태가 만료되면 자동으로 깨어나 실행 상태가 아닌 실행 가능 상태로 돌아갑니다. sleep()에 지정된 시간은 스레드가 실행되지 않는 최소 시간입니다. 따라서 sleep() 메서드는 해당 절전 모드가 만료된 후 스레드가 실행을 시작한다고 보장할 수 없습니다. 🎜🎜🎜🎜3. sleep()은 정적 메서드이며 현재 실행 중인 스레드만 제어할 수 있습니다. 🎜🎜🎜🎜예: 100까지 세고 각 숫자 사이에 1초 동안 일시 중지하며 10개 숫자마다 문자열을 출력하는 카운터🎜rrreee🎜추천 튜토리얼: "🎜java 비디오 튜토리얼🎜"🎜

위 내용은 Java에서 sleep의 사용법은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.