동기화 된 블록에 들어갈 때 IllegalStateException이 발생하면 어떤 의미입니까?동기화 된 블록을 입력 할 때 IllegalStateException이 발생했습니다.
public void run() {
while (true) {
int n = 0;
synchronized (service) { // IllegalStateException
n = processPendingRequests();
}
/*
* If n > 0, we processed at least one element, in which case we
* immediately check the queue again until it was empty.
*/
if (n == 0) {
sleep();
continue;
}
}
}
가 service
객체가 IllegalStateException
가 발생할 수 있습니다 나는 스레드의 실행 방법 안에 때때로이를보고 있어요? 방법?
스택 추적이 있습니까? 첫 번째 추측은 동기화와 관련이 없으며 다른 이유로 throw됩니다. – Yishai
실제로 스레드의'run' 메서드에 있습니다. 게시물을 좀 더 명확하게 편집하겠습니다. – JesperE
그렇다면 왜 디버거는'synchronized' 문에서 멈출까요? – JesperE