멀티 스레드 실행을 동기화하는 방법
멀티 스레드 애플리케이션에서는 병렬 작업 실행을 조정해야 하는 경우가 많습니다. 이 문서에서는 계속하기 전에 스레드 그룹이 완료될 때까지 기다리는 방법을 살펴봅니다.
문제:
다음 코드를 고려하세요.
<code class="java">public class DoSomethingInAThread implements Runnable {...} public static void main(String[] args) { for (int n=0; n<p>이 예에서는 여러 개의 새 스레드가 생성되고 시작됩니다. 그러나 main() 메소드는 스레드가 작업을 완료할 때까지 기다리지 않고 즉시 실행을 계속합니다.</p> <p><strong>해결책:</strong></p> <p>실행을 동기화하기 위해 다음을 생성할 수 있습니다. 스레드 참조 배열을 만든 다음 각 스레드 개체에서 Join() 메서드를 사용합니다. 이는 대상 스레드가 실행을 완료할 때까지 현재 스레드를 차단합니다.</p> <pre class="brush:php;toolbar:false"><code class="java">import java.lang.Thread; public class DoSomethingInAThread implements Runnable {...} public static void main(String[] args) { Thread[] threads = new Thread[1000]; for (int n=0; n<threads.length n threads new thread dosomethinginathread for t: t.join><p>이 수정된 코드에서 main() 메서드는 스레드 참조 배열을 생성하고 각 스레드를 시작합니다. 그런 다음 배열의 모든 스레드에서 Join()을 호출하는 루프에 들어갑니다. 이렇게 하면 main() 메서드가 계속되기 전에 모든 스레드가 작업을 완료할 수 있습니다.</p></threads.length></code>
위 내용은 계속하기 전에 여러 스레드가 실행을 마칠 때까지 기다리는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!