2014-02-15 2 views
0

같은 프로세스에서 두 개의 스레드 을 알고 있습니다.waitnotify과 통신 할 수 있습니다.
어떻게 서로 다른 프로세스의 두 스레드가 서로 통신 할 수 있습니까?Java의 프로세스 간 통신

답변

0

taskmanager는 주 스레드에서 여러 사용자 스레드를 생성하여 작업을 관리합니다. 기본 스레드는 항상 기본적으로 만들어집니다. 사용자 스레드 1-3은 순차적으로 실행됩니다. 즉 스레드 -1이 완료된 후에 만 ​​스레드 2가 시작됩니다. 사용자 스레드 4-6은 동시에 시작하고 실행합니다.

enter image description here

public class TaskManager { 
    public static void main(String[] args) throws InterruptedException { 
     RunnableTask task = new RunnableTask(); 

     //threads 1-3 are run sequentially 
    Thread thread1 = new Thread(task, "Thread-1"); 
    Thread thread2 = new Thread(task, "Thread-2"); 
    Thread thread3 = new Thread(task, "Thread-3"); 

    thread1.start(); //invokes run() on RunnableTask 
    thread1.join(); // main thread blocks (for 10 seconds) 
    thread2.start(); //invokes run() on RunnableTask 
    thread2.join(); // main thread blocks (for 10 seconds) 
    thread3.start(); //invokes run() on RunnableTask 
    thread3.join(); // main thread blocks (for 10 seconds) 

    Thread thread4 = new Thread(task, "Thread-4"); 
    Thread thread5 = new Thread(task, "Thread-5"); 
    Thread thread6 = new Thread(task, "Thread-6"); 

     thread4.start(); //invokes run() on RunnableTask 
     thread5.start(); //invokes run() on RunnableTask 
     thread6.start(); //invokes run() on RunnableTask 
    } 
} 

공지 사항 출력의 시간. 스레드 1 - 3 사이에는 10 초의 차이가 있습니다. 그러나 4-6 번 스레드는 거의 같은 시간에 시작되었습니다.

Thread-1 at Fri Mar 02 16:59:22 EST 2012 
Thread-2 at Fri Mar 02 16:59:32 EST 2012 
Thread-3 at Fri Mar 02 16:59:42 EST 2012 
Thread-4 at Fri Mar 02 16:59:47 EST 2012 
Thread-6 at Fri Mar 02 16:59:47 EST 2012 
Thread-5 at Fri Mar 02 16:59:47 EST 2012 
+0

이 아주 좋은 대답이다,하지만 난 영업 이익은 completly 다른 질문을 것을 두려워 그가 * 프로세스 간 통신 *에 대해 요구하고있다, 당신은에서 직렬 및 병렬 쓰레드의 차이를 보여 단일 프로세스. – kajacx