>  기사  >  Java  >  다중 스레드 프로세스가 완료될 때까지 메인 스레드가 대기하는지 확인하는 방법은 무엇입니까?

다중 스레드 프로세스가 완료될 때까지 메인 스레드가 대기하는지 확인하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-31 02:31:29650검색

How to Ensure the Main Thread Waits for Completion of Multiple Threaded Processes?

여러 스레드 프로세스의 완료를 기다리는 중

이 코드 조각에는 여러 스레드가 생성되어 있으며 각 스레드는 자체 스레드 내에서 작업을 실행합니다. 실행의. 계속 진행하기 전에 기본 스레드가 모든 하위 스레드의 실행이 완료될 때까지 기다리도록 하려면 다음 접근 방식을 구현할 수 있습니다.

  1. 스레드를 배열에 저장: 생성된 모든 스레드를 저장하는 배열입니다. 이렇게 하면 완료 상태를 체계적으로 추적할 수 있습니다.
  2. 모든 스레드 시작: 스레드 배열을 반복하고 start() 메서드를 사용하여 각 스레드를 시작합니다.
  3. 루프에서 스레드 결합: 모든 스레드를 시작한 후 루프를 추가하여 배열의 각 스레드를 결합합니다. Join() 메소드는 대상 스레드가 실행을 완료할 때까지 호출 스레드(이 경우 메인 스레드)를 차단합니다.
<code class="java">// ... (code as before)

public class DoSomethingInAThread implements Runnable {

    public static void main(String[] args) {
        Thread[] threads = new Thread[1000];  // Assume 1000 threads for example
        
        // Start all threads
        for (int n = 0; n < 1000; n++) {
            threads[n] = new Thread(new DoSomethingInAThread());
            threads[n].start();
        }
        
        // Wait for all threads to complete
        for (int i = 0; i < threads.length; i++) {
            threads[i].join();
        }
    }

    public void run() {
        // ... (code as before)
    }
}</code>

join() 메소드를 사용하면 메인 스레드가 차단됩니다. 모든 하위 스레드가 실행을 완료할 때까지 루프를 따르는 코드를 진행하기 전에 프로그램이 모든 작업이 완료될 때까지 기다리도록 합니다. 이 접근 방식을 사용하면 제어할 수 있으며 리소스가 해제되고 프로그램이 올바르게 종료되도록 할 수 있습니다.

위 내용은 다중 스레드 프로세스가 완료될 때까지 메인 스레드가 대기하는지 확인하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.