Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java에서 yield() 메소드의 중요성?


yield() 메소드가 정적입니다. 스레드 메소드 현재 실행 중인 스레드를 중지할 수 있고 동일한 우선순위의 다른 대기 스레드에 기회를 줄 것입니다. 대기 중인 스레드가 없거나 대기 중인 모든 스레드의 우선순위가 낮은 경우 그러면 동일한 스레드가 계속 실행됩니다. yield()의 장점 방법은 대기 중인 다른 스레드를 실행할 수 있는 기회를 얻는 것이므로 현재 스레드가 실행하고 다른 스레드에 프로세서를 할당하는 데 더 많은 시간이 걸리는 경우입니다.

구문

public static void yield()

예시

class MyThread extends Thread {
   public void run() {
      for (int i = 0; i < 5; ++i) {
         Thread.yield(); // By calling this method, MyThread stop its execution and giving a chance to a main thread
         System.out.println("Thread started:" + Thread.currentThread().getName());
      }
      System.out.println("Thread ended:" + Thread.currentThread().getName());
   }
}
public class YieldMethodTest {
   public static void main(String[] args) {
      MyThread thread = new MyThread();
      thread.start();
      for (int i = 0; i < 5; ++i) {
         System.out.println("Thread started:" + Thread.currentThread().getName());
      }
      System.out.println("Thread ended:" + Thread.currentThread().getName());
   }
}

출력

Thread started:main
Thread started:Thread-0
Thread started:main
Thread started:Thread-0
Thread started:main
Thread started:Thread-0
Thread started:main
Thread started:Thread-0
Thread started:main
Thread started:Thread-0
Thread ended:main
Thread ended:Thread-0