여러 스레드 완료 대기
설명한 시나리오에서는 여러 스레드가 생성되고 각각이 동일한 작업을 독립적으로 실행합니다. , 생성된 모든 스레드가 실행을 완료할 때까지 기본 스레드를 일시 중지하는 방법을 찾는 것이 필요합니다. 이는 적절한 조정을 보장하고 보조 스레드가 완료되기 전에 기본 스레드가 진행되는 것을 방지하는 데 필수적입니다.
효과적인 솔루션 중 하나는 생성된 모든 스레드를 저장하는 Thread 객체 배열을 생성하고 이를 동시에 시작한 다음, 배열의 각 스레드에서 Join() 메서드를 호출하는 루프를 구현합니다. Join() 메서드는 호출된 스레드가 종료될 때까지 호출 스레드를 차단합니다.
이 루프를 DoSomethingInAThread 클래스에 통합하면 기본 스레드 실행을 계속하기 전에 모든 보조 스레드가 완료될 때까지 안정적으로 기다릴 수 있습니다.
<code class="java">// Array to store created threads private static Thread[] threads; public static void main(String[] args) { // Create an array to store the threads threads = new Thread[1000]; // Start all the threads for (int n = 0; n < 1000; n++) { Thread t = new Thread(new DoSomethingInAThread()); t.start(); // Save the reference to the created thread threads[n] = t; } // Wait for all threads to complete for (int i = 0; i < threads.length; i++) { threads[i].join(); }</code>
위와 같이 main() 메서드를 수정하면 모든 보조 스레드의 실행이 완료된 후에만 메인 스레드가 진행됩니다. 이 기술은 메인 스레드의 실행이 모든 하위 스레드의 완료와 동기화되도록 보장합니다.
위 내용은 여러 스레드가 완료된 후 기본 스레드 실행을 보장하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!