Java 스레드 스케줄링 방법은 다음과 같습니다. 1. 협업 스레드 스케줄링 다중 스레드 시스템은 협업 스케줄링을 채택하고 스레드의 실행 시간은 스레드 자체에 의해 제어됩니다. 2. 선점형 스레드 스케줄링. 선점형 스케줄링 다중 스레드 시스템을 사용하여 각 스레드의 실행 시간이 시스템에 의해 할당됩니다.
이 튜토리얼의 운영 환경: Windows 7 시스템, Java 10 버전, DELL G3 컴퓨터.
1. 협력적 스레드 스케줄링
멀티 스레드 시스템은 협력적 스케줄링을 채택합니다. 스레드의 실행 시간은 스레드 자체에 의해 제어됩니다. 스레드는 작업을 완료한 후 시스템에 다른 스레드로 전환하도록 적극적으로 알립니다. 협력형 멀티스레딩의 장점은 스레드가 자체 작업을 완료한 후 스레드를 전환하기 때문에 구현이 간단하다는 것입니다. 전환 작업은 스레드 자체에 알려져 있으므로 일반적으로 스레드 동기화 문제가 없습니다. 단점도 분명합니다. 스레드 실행 시간을 제어할 수 없으며 스레드 코드가 잘못 작성되어 시스템이 스레드 전환을 허용하지 않으면 프로그램이 항상 차단됩니다.
2. 선제적인 스레드 스케줄링
선점형 스케줄링 멀티 스레드 시스템을 사용하면 각 스레드의 실행 시간이 시스템에 의해 할당되며 스레드 전환은 프로세스 자체에 의해 결정되지 않습니다. 예를 들어 Java에는 실행 시간을 적극적으로 포기할 수 있는 Thread::yield() 메서드가 있지만 실행 시간을 적극적으로 얻으려는 경우 스레드 자체에는 방법이 없습니다. 이러한 방식으로 스레드 스케줄링이 구현되고 스레드의 실행 시간이 시스템에 의해 제어됩니다. 하나의 스레드가 전체 프로세스 또는 전체 시스템을 차단하는 문제가 없습니다.
위의 두 가지 Java 스레드 스케줄링 방법이 모든 사람에게 도움이 되기를 바랍니다.