실 을 자면 실제로 무슨 일이 일어나고 있습니까?
스레드를 잠 자면 "현재 스레드가 지정된 시간 동안 일시 중지됩니다"라는 것을 알 수 있습니다. 그러나 어떻게 작동합니까?
에 따르면 내부적으로) (어떻게 Thread.sleep를 작품 과 Thread.sleep를 정말 작업을 수행하는 방법? :
- 수면 시간은 시스템에 따라 세분화됩니다.
- 수면이 막히고있다
- 스레드는 CPU를 떠나 실행을 중지합니다
- 잠자는 동안 스레드가 CPU 시간을 소비하지 않습니다
나는 이것이 의미하는 바의 내부 및 기본 역학을 이해할 수 없습니다.
스레드 간 전환을 담당 하는 스케줄러 라는 것이 있음을 이해 합니다.
소스는 OS (또는 하드웨어에 따라 다름)에 따라 다르며 CPU가 다른 스레드로 전환하기 전에 일부 작업을 수행하기 위해 대부분의 스레드에 1ms-60ms 정도가 제공됩니다.
그러나 스레드가 잠 자면 (예 : 몇 초) 어떻게 다시 시작됩니까? 타이머가 어떻게 든 관련되어 있다고 생각합니다. 마더 보드의 시계입니까? CPU 클럭 속도와 관련이 있습니까?
그리고 타이머가 관련되어 있어도 CPU가 스레드에 다시주의를 기울여야 할 시점을 어떻게 알 수 있습니까? 스레드가 준비되어 있는지 지속적으로 확인하지 않아도됩니까? 효과적으로 폴링 하지 않으므로 CPU 시간 이 소비됩니까?
스레드 언어별로 휴면 상태입니까, 아니면 OS가 담당합니까? 아니면 CPU 관련입니까?
누군가 스케줄러와 같은 것들에 대한 기본 설명 과이 모든 과정에서 CPU가 무엇을하고 있는지 설명해 주시겠습니까?