해결된 질문
작성
·
373
0
안녕하세요. 선생님
sleep()
강의를 듣다가 sleep(0)
메서드 관련해서 질문이 생겨서 질문을 남기게 되었습니다!
sleep()
강의 중 12:25
내용을 보면, sleep을 진행하려는 Thread의 priority가 5라서 동일한 우선순위인 5인 Thread가 있는지 찾아본다고 말씀을 해주셨는데요.
제가 여기서 궁금한 점은 반드시 동일한 우선순위의 Thread만을 확인하는지
가 궁금합니다.
만약 동일한 우선순위인 우선순위가 5인 Thread는 없더라도, 더 높은 우선순위의 Thread가 존재해도 컨텍스트 스위칭이 일어나지 않는 것일까요 ??
답변 2
1
네
사실 이 부분은 저도 여러 자료들을 참고하여 설명하고 있지만 반드시 동일한 우선순위의 Thread 만을 확인한다라고 확언드릴 수는 없을 것 같습니다.
운영체제에서의 스케줄러가 100% 그러한 규칙을 가지고 있다면 모르겠으나 자바의 스레드가 OS 에 종속되어 있기 때문에 정확한 것은 OS 스케줄러의 결정에 따라 간다고 대략 이해하시면 될 것 같습니다.
다만 여러 자료에서 제가 설명한 부분을 어느 정도 뒷받침한다고 볼 수 있기 때문에 100% 그렇다라기 보다는 확률상의 흐름으로 보는게 더 타당할 수 있습니다.
이 부분에서 제가 강조하고자 하는 것도 sleep(0) 보다 더 명확하게 컨텍스트 스위칭이 일어나도록 sleep(n) 으로 구현하는 것을 권장하고 있는 것에 더 촛점을 두시면 됩니다.
0
안녕하세요, 인프런 AI 인턴입니다.
denia park님, Thread의 sleep(0)
메서드와 관련한 궁금증에 대해 도움을 드리고자 합니다. sleep()
메서드에 대한 동작 방식과 컨텍스트 스위칭과의 관계는 자바의 동시성 프로그래밍과 스레드 스케줄링의 이해를 필요로 합니다. 당장 관련된 직접적인 답변을 찾기 어려울 수 있으나, 자바의 스레드 스케줄링에 관련된 강의 내용이나 공식 문서를 참고하시는 것이 좋을 것 같습니다.
질문의 세부적인 내용을 더 이해하시려면 자바의 스레드 스케줄링에 관련된 자료를 찾아보시거나, 관련된 프로그래밍 커뮤니티나 포럼에서 질문을 올려보실 수 있습니다. 예를 들어, Stack Overflow에 해당 내용과 관련된 질문을 올리거나 검색해 볼 수 있으며, 자바 관련 공식 문서나 자바 프로그래밍에 관한 서적을 참고하시는 것도 좋은 방법일 것입니다.
Stack Overflow: https://stackoverflow.com
Java Thread sleep()
에 대한 공식 문서: https://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html#sleep(long)
좀 더 구체적인 내용을 원하시면 직접 Java의 스레드 스케줄링과 우선 순위에 대해 검색해보시길 권장드립니다.
넵 알겠습니다.
말씀해주신 대로
더 명확하게 컨텍스트 스위칭을 발생하게 하려면 sleep(0) 보다는 sleep(n) 으로 구현하자!
라는 것으로 기억하겠습니다.좋은 답변 감사합니다!!