나는 하나 이상의 핸들러 (쓰레드)를 실행시키고, 어떤 쓰레드는 다른 쓰레드의 결과에 의존한다. 그래서 나는 정의 된 순서로 쓰레드를 실행시키고 자한다.두 스레드가 안드로이드에서 미리 정의 된 순서로 실행되는 것을 어떻게 허용합니까?
0
A
답변
2
두 번째 쓰레드는 첫 번째 쓰레드 .
final Thread th2 = new Thread(new Runnable(){
public void run(){
doSomething2;
}
}
Thread th1 = new Thread(new Runnable(){
public void run(){
doSomething;
th2.start();
}
});
th1.start();
th2.join();
하지만 당신은 아마 전혀 번째 스레드 필요가 없습니다 당신이 완료하는 데 다른 스레드가 하나 개의 스레드에서 대기해야하는 경우
Thread th1 = new Thread(new Runnable(){
public void run(){
doSomething;
doSomething2;
}
});
th1.start();
th1.join();
0
는, 몇 가지 옵션이있다합니다.
하나는 CountDownLatch를을 사용하는 것,
어딘가에 보통주 래치 CountDownLatch를 래치 = 새로운 CountDownLatch를 (1);
스레드 1,
doSomething();
countdownLatch.countdown();
스레드 2
countdownLatch.await();
doSomethingElse();
카운트 래치 번만 것처럼 사용될 수있다.
java.util.concurrent에는 다른 클래스가있어서 문제를 해결할 수 있습니다. LinkedBlockingQueue, CyclicBarrier, Exchanger가 유용 할 수 있습니다. 더 자세한 내용을 알지 못해도 더 말하기가 어렵습니다.
그리고 덧글 및 기타 답변에서 지적한 것처럼 가능한 경우 여러 스레드를 피할 수 있습니다.
관련 문제
- 1. XSLT를 사용하여 미리 정의 된 순서로 XML 요소를 에코하려면 어떻게해야합니까?
- 2. 미리 정의 된 단어
- 3. 스레드가 실행되는 Java 소켓
- 4. 두 프로세스가 병렬로 실행되는 것을 피하는 방법
- 5. VS2010에서 'System.NullReferenceException'을 깨는 것을 어떻게 허용합니까?
- 6. 레일즈에 javascript : 데이터가있는 것을 어떻게 허용합니까?
- 7. 미리 정의 된 긴 문자열
- 8. HLSL : 미리 정의 된 변수
- 9. 미리 정의 된 그루비 변수
- 10. 어떻게 가능합니까? 서비스가 무기한 실행되며 안드로이드에서 바인딩을 허용합니까?
- 11. TabControl의 미리 디자인 된 탭이로드되는 것을 방지합니다.
- 12. Box2d Kinematic 바디에 미리 정의 된 곡선 경로를 어떻게 부여합니까?
- 13. 미리 정의 된 정렬 된 값 목록을 사용하여 개체 정렬
- 14. Google지도에서 미리 정의 된 오버레이 사용하기
- 15. Grails가 Intellij에서 실행되는 것을 어떻게 멈추게합니까?
- 16. 미리 정의 된 값으로 드롭 다운
- 17. Windows 응용 프로그램의 DataGridview에서 특정 열만 편집하는 것을 어떻게 허용합니까?
- 18. 주어진 스레드가 실행되는 코어는 무엇입니까?
- 19. .snippets에 대한 미리 정의 된 리터럴
- 20. 우선 순위에 따라 정의 된 순서로 Win32 스레드 스케줄링을 적용합니다.
- 21. 미리 정의 된 함수를 호출하는 jQuery
- 22. 봄 보안 로그인 페이지에서 LocaleInterceptor가 로케일을 변경하는 것을 어떻게 허용합니까?
- 23. 미리 정의 된 구조가없는 Excel 가져 오기
- 24. 레지스트리에서 미리 정의 된 책갈피로 데이터를 삽입하십시오.
- 25. 어떻게 내가 다른 스레드가 메인 스레드에서 실행되는 것을 알 수 있습니까?
- 26. 미리 정의 된 코드로 Netbeans GUI를 구축하십시오.
- 27. 사용자가 iPhone SDK의 테이블 뷰에 항목을 추가하는 것을 어떻게 허용합니까?
- 28. 사용자가 템플릿 용도로 장고 사이트를 확장하는 것을 어떻게 허용합니까?
- 29. Android - 두 스레드가 UI를 변경합니다.
- 30. 자바 스크립트 : 미리 정의 된 변수
연속적으로 처리해야하는 경우 왜 두 개 이상의 스레드가 필요합니까? 스레드 실행 순서를 직접 제어 할 수 없으므로 두 번째 스레드는 첫 번째 스레드에 의해 트리거 된 일부 이벤트를 기다리는 블록 상태가되어야합니다. 이것은 실현 가능합니까, 아니면 두 번째 스레드가 다른 작업을 수행하고있는 경우에 당신은 폴링을 끝낼 것입니다 ... – forsvarir