하나는보기 스레드이고 다른 하나는 작업 스레드입니다. 내가하고 싶은 일은 뷰 스레드가 onDraw 메서드의 처리를 종료 할 때까지 작업 스레드를 잠자 게하는 것입니다.다른 스레드에서 이벤트가 수신 될 때까지 스레드 잠들기
어떻게 할 수 있습니까? 신호가 나올 때까지 기다리는 중입니까?
하나는보기 스레드이고 다른 하나는 작업 스레드입니다. 내가하고 싶은 일은 뷰 스레드가 onDraw 메서드의 처리를 종료 할 때까지 작업 스레드를 잠자 게하는 것입니다.다른 스레드에서 이벤트가 수신 될 때까지 스레드 잠들기
어떻게 할 수 있습니까? 신호가 나올 때까지 기다리는 중입니까?
두 스레드 사이에서 java.lang.Object를 공유합니다.이 스레드는 작업을 계속할 수있는 시점을 작업자 스레드에 알리는 데 그 목적이 있습니다. 요구 사항이보기 스레드를
stick.notify();
참고 :
stick.wait();
보기 스레드가 된 onDraw 작업을 완료, 그것은이를 호출 작업자 스레드가 잠을해야 할 지점에 도달 할 때마다,이 수행 객체의 모니터를 소유합니다. 귀하의 경우에는,이 작은 동기 블록에 적용하는 매우 간단합니다 :
void onDraw() {
...
synchronized (stick) {
stick.notify();
}
} // end onDraw()
이러한 방법에 java.lang.Object 상위를위한 Javadoc을 참조하십시오 (와의 notifyAll, 단지 경우); 그들은 아주 잘 쓰여졌습니다.
장애물과 같은 상위 수준의 concurreny API를 원한다면 Java 1.3 이상에서 작동하는 java 5 동시성 API의 백 포트를 시도해 볼 수 있으며 Android에서 작동 할 수 있습니다. Object.wait/notify 등의 기능은 작동하지만 조금 간결 할 수 있습니다.