문제

그래서 나는 a TimerTask task 함수 호출 onTimerComplete() 그것에 run()

onTimerComplete() 다음과 같이 보입니다.

private void onTimerComplete(){
  myFunc1();
  myFunc2();
}

나는 만든다 Timer t 그리고 나는 다음을 예약한다 TimerTask ~와 함께 t.schedule(task, 2000);

문제는 타이머가 올라가고 작업이 내 onTimerComplete() 그러나 그 기능은 끝나지 않습니다. 그것은 작동한다 myFunc1() 그러나 결코 그것을 끝내지도 않습니다 myFunc2()

그러나 내가 전화하면 onTimerComplete() 직접 모든 것이 작동합니다.

여기서 거래는 무엇입니까?

도움이 되었습니까?

해결책

만약에 myFunc1() 시작하지만 결코 끝나지 않으면 문제가 그 기능에있을 가능성이 높습니다.

이 기능은 별도의 스레드에서 호출 될 것임을 알고 있어야합니다. 두 스레드 사이에 어떤 종류의 원치 않는 상호 작용이있을 가능성이 있습니다. (설명 여기.)

만약에 myFunc1() 다른 동시 활동에서도 사용되는 일부 변수를 사용하므로 코드의 일부를 동기화해야 할 수도 있습니다. 그만큼 동시 튜토리얼 문제가 무엇인지, 해결 방법을 해결하는 데 도움이 될 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top