"안녕하세요, 아미고! 오늘은 짧지만 재미있는 수업을 하도록 하겠습니다. Thread 클래스의 정적 메서드인 yield 에 대해 말씀드리려고 합니다 ."

Ellie는 이미 프로세서가 스레드 사이를 지속적으로 전환한다고 말했습니다. 각 스레드에는 퀀텀 이라고 하는 작은 프로세서 시간이 할당됩니다 . 이 시간이 만료되면 프로세서는 다른 스레드로 전환하고 명령 실행을 시작합니다. 호출하면 Thread.yield()현재 스레드의 양자를 조기에 종료할 수 있습니다. 즉, 프로세서에게 다음 스레드로 전환하라고 지시합니다.

"그런데 왜 한 스레드가 다른 스레드에 시간을 양보해야 할까요?"

"자주 발생하지 않습니다. yield를 호출한다는 것은 «우리 스레드가 일정보다 앞당겨 완료됨»을 의미하며 yield 이후의 명령 이 풀 타임 퀀텀으로 시작됨을 의미합니다. 따라서 중단될 가능성이 적습니다. 특히 짧은 명령인 경우, 즉 실행하는 데 오래 걸리지 않습니다. 이 접근 방식은 일부 프로세스를 최적화하는 데 사용할 수 있습니다."

Thread.sleep(0) 도 실제로 같은 방식으로 작동한다고 말할 수 있습니다 . 처음에는 yield 메서드를 많이 사용하지 않을 것이라고 생각 하지만 알아두면 유용합니다.