synchronized (this)
{
mTimeOutRunnable = new Runnable()
{
@Override
public void run()
{
..some code
}
};
}
새로운 Runnable
클래스의 기준 assignement이 블록에 의해 커버되지만, 내부 런 (코드한다) (블록)도 synchronized
블록에 입력 하시겠습니까?
이것은 작업자 스레드에서 호출되므로 동기화 블록에 래핑되어 호출하는 (주) 스레드가 mTimeOutRunnable
개체에도 액세스 할 수 있도록하려는 것입니다.
, 즉 한 번에 하나의 스레드 만 사용합니까? – amphibient
죄송합니다. 여기 run() 메서드 안의 코드는 내 작업자 스레드에서 호출되지 않습니다. 이것은 주 스레드에서 호출 될'Looper' (Android)로 전달됩니다. 위의 전체 코드는 worker thread에 있지만 – Dori
('Runnable '내의'this'는 바깥 쪽의'this'와 다를 것이므로'synchronized (this) {}'는 다른 객체를 잠글 것입니다. 그래서 의도 한대로 작동하지 않을 것입니다.) –