1
나는 스케줄러와 VM에 관한 주제를 연구하고있다. 나는 어제 this question을 물었고, 자바에서도 같은 것이 가능한지 알아야한다. Java에서 실제 OS 스레드로 작업을 매핑하는 작업 스케줄러를 변경할 수 있다면 궁금합니다. 감사.Java의 작업 스케줄러를 맞춤 빌드로 바꾸기
나는 스케줄러와 VM에 관한 주제를 연구하고있다. 나는 어제 this question을 물었고, 자바에서도 같은 것이 가능한지 알아야한다. Java에서 실제 OS 스레드로 작업을 매핑하는 작업 스케줄러를 변경할 수 있다면 궁금합니다. 감사.Java의 작업 스케줄러를 맞춤 빌드로 바꾸기
On Linux there is a one to one mapping of Java threads to operating system threads. 리눅스에서 자바 스레드 스케줄러는 커널 스케줄러입니다. 자바 쓰레드 스케줄러를 변경하려면 커널을 변경해야합니다. Linux에는 커널 스케줄러의 동작을 변경하는 몇 가지 옵션이 있다고 생각합니다. 필요한 옵션만으로 충분할 수 있습니다.
정말로 일대일 매핑을 사용하지 않으려는 경우 JVM을 변경해야합니다.
Linux 커널과 JVM (Open JDK 버전) 모두 오픈 소스이므로 기술적으로 가능하지만 많은 작업이 필요합니다.
java의 "작업 스케줄러"는 무엇입니까? – jtahlborn
@jtahlborn : Hah. 자바가 작업 기반 병렬 처리 모델을 가지고 있다고 가정하면 ... 그렇지 않습니까? (!) 모든 스레드가 1 : 1에서 OS 스레드입니까? –
스레드는 1 : 1이며 거의 모든 현대 jvms에서 OS 스레드가 있습니다. 작업/액터 (akka와 같은)의 개념을 가진 제 3 자 라이브러리가 있지만 jdk에 많이 내장되어 있지는 않습니다 (jdk 7에는 포크/조인 프레임 워크가있는 것 같습니다). 그래서 질문에 대답하기 위해 특정 작업 프레임 워크를 선택해야합니다. – jtahlborn