이 문제의 의도를 잘 모르겠습니다.
억지로 해석해 보자면 "스레드 2개를 만들고 우선순위 설정 기능을 이용하여 출력 결과가 *항상* 주어지는 대로 나오는 프로그램을 작성하시오" 정도일 것 같은데,
우선순위 기능만으로는 출력 결과를 보장할 수 없습니다.
(스레드 스케쥴러는 우선 순위가 높은 스레드를 더 자주 선택하려고 하겠지만, 항상 그렇게 되리라고 보장할 수 없습니다)
직접 스레드의 우선순위만을 이용해서 프로그램을 작성해 봤는데, 5회 중 3번 정도만 출력 결과가 정확히 일치했습니다.
실행 순서를 정하고 싶으면 lock 이나 semaphore, monitor 같은 제대로 된 스레드 동기화 방법을 사용해야 합니다.
lucky3270 2년 전
이 문제 풀어보려고 하는데 잘 모르겠습니다