나는이 일에 대해 매우 궁금해. 동기화 된 블록에 몇 가지 코드가 있습니다.
SDK 메서드를 호출하지만 코드가 중단됩니다.왜 내 코드가 멈 춥니 까?
synchronized(someObject) {
someSDKobj.someMethd();
}
비동기 블록에서 동일한 호출을하면 올바르게 실행됩니다. SDK에 방법이 같은 'someObject라는'에 동기화 다른 방법으로, 다른 스레드에서 호출 할 경우 교수형
//synchronized(someObject)
{
someSDKobj.someMethd();
}
이유 중 하나이지만, 그 사건 아니에요.
그 외 무엇이이 이상한 현상을 일으킬 수 있습니까? 호출 된 메서드가 동기화 된 블록에서 호출되었다는 사실에 영향을받는 이유는 무엇입니까? 중요하다면 이것은 Java-ME에서 실행 중입니다.
여기서 말하는 정보가 충분하지 않다는 정보를 자세히 알려주십시오. 교착 상태 또는 기타 문제 일 수 있습니다. –
정확하게 달린 부분을 보았습니까? 동기화 된 블록에 들어가는 것이 긍정적입니까? 컴파일 가능한 코드를 제공하지 않으면 커뮤니티가 이러한 모든 것에 대해 궁금해하게 만듭니다. –
메서드를 호출하는 동일한 개체에서 동기화해야합니까? 어떤 SDK 방법입니까? 다른 코드가 객체를 사용하는 이유는 무엇입니까? –