>  기사  >  Java  >  Java에서 Yield()와 Sleep()의 차이점은 무엇입니까?

Java에서 Yield()와 Sleep()의 차이점은 무엇입니까?

王林
王林앞으로
2023-05-07 21:55:061474검색

차이점

1. sleep()은 CPU 시간 조각을 소비하지 않고 지정된 시간 동안 일시 중지됩니다.

2. CPU 스케줄러가 이를 무시하지 않는 경우 Yield()는 CPU 스케줄러에 대한 프롬프트일 뿐입니다. 이 프롬프트는 스레드 컨텍스트를 전환하게 합니다

sleep()은 스레드를 잠시 차단하고 주어진 시간 내에 CPU 리소스를 해제합니다. RUNNING state

sleep() 주어진 시간 동안 Sleeping이 거의 100% 완료되지만,yield() 프롬프트는 반드시 sleep()을 호출하는 한 스레드와 Interrupt()를 호출하는 다른 스레드가 인터럽트 신호를 잡을 것이라고 보장하지는 않지만, 수익률은

Instances

package cn.hanquan.test;
/*
 * sleep模拟倒计时,每一秒减一
 */
public class Lambda {
public static void main(String[] args) {
 
// Labmda表达式
new Thread(() -> {
for (int i = 0; i < 100; i++) {
System.out.println(i);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}).start();
}
}
가 아닙니다.

위 내용은 Java에서 Yield()와 Sleep()의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제