0
我知道在同一進程中的兩個線程可以與wait
和notify
通信。
來自不同進程的兩個線程如何相互通信?Java中的進程間通信
我知道在同一進程中的兩個線程可以與wait
和notify
通信。
來自不同進程的兩個線程如何相互通信?Java中的進程間通信
taskmanager通過稀疏主線程中的多個用戶線程來管理任務。主線程始終默認創建。用戶線程1-3按順序運行,即線程2僅在線程1完成後啓動,以此類推。用戶線程4-6啓動並且同時執行。
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
這是一個很不錯的答案,但我怕op是完全地問另一個問題:他是問*進程之間的通信*您展示在串行和並行線程之間的區別單一過程。 – kajacx