2013-06-27 2 views
1

나는 스케줄러와 VM에 관한 주제를 연구하고있다. 나는 어제 this question을 물었고, 자바에서도 같은 것이 가능한지 알아야한다. Java에서 실제 OS 스레드로 작업을 매핑하는 작업 스케줄러를 변경할 수 있다면 궁금합니다. 감사.Java의 작업 스케줄러를 맞춤 빌드로 바꾸기

+0

java의 "작업 스케줄러"는 무엇입니까? – jtahlborn

+0

@jtahlborn : Hah. 자바가 작업 기반 병렬 처리 모델을 가지고 있다고 가정하면 ... 그렇지 않습니까? (!) 모든 스레드가 1 : 1에서 OS 스레드입니까? –

+2

스레드는 1 : 1이며 거의 모든 현대 jvms에서 OS 스레드가 있습니다. 작업/액터 (akka와 같은)의 개념을 가진 제 3 자 라이브러리가 있지만 jdk에 많이 내장되어 있지는 않습니다 (jdk 7에는 포크/조인 프레임 워크가있는 것 같습니다). 그래서 질문에 대답하기 위해 특정 작업 프레임 워크를 선택해야합니다. – jtahlborn

답변

0

On Linux there is a one to one mapping of Java threads to operating system threads. 리눅스에서 자바 스레드 스케줄러는 커널 스케줄러입니다. 자바 쓰레드 스케줄러를 변경하려면 커널을 변경해야합니다. Linux에는 커널 스케줄러의 동작을 변경하는 몇 가지 옵션이 있다고 생각합니다. 필요한 옵션만으로 충분할 수 있습니다.

정말로 일대일 매핑을 사용하지 않으려는 경우 JVM을 변경해야합니다.

Linux 커널과 JVM (Open JDK 버전) 모두 오픈 소스이므로 기술적으로 가능하지만 많은 작업이 필요합니다.

관련 문제