Java 是一種支持多進程和多線程實現的編程語言。多進程可以讓程序同時執行多個任務,提高程序的并發能力。多線程可以在一個進程內同時執行多個任務,提高程序的響應速度。
多進程可以使用 ProcessBuilder 類或 Runtime 類的 exec() 方法來創建進程,并通過輸入流和輸出流來進行進程間的通信。例如:
ProcessBuilder pb = new ProcessBuilder("command", "arg1", "arg2"); Process p = pb.start(); InputStream is = p.getInputStream(); OutputStream os = p.getOutputStream();
多線程可以通過繼承 Thread 類或實現 Runnable 接口來創建線程,并使用 start() 方法來啟動線程。例如:
class MyThread extends Thread { public void run() { System.out.println("Thread running"); } } class MyRunnable implements Runnable { public void run() { System.out.println("Runnable running"); } } Thread t1 = new MyThread(); t1.start(); MyRunnable r = new MyRunnable(); Thread t2 = new Thread(r); t2.start();
多線程還可以通過 synchronized 關鍵字來控制線程間的同步,避免資源競爭的問題。例如:
class Counter { private int count = 0; public synchronized void increment() { count++; } public synchronized int getCount() { return count; } } Counter c = new Counter(); for (int i = 0; i< 10; i++) { new Thread(() ->{ for (int j = 0; j< 1000; j++) { c.increment(); } }).start(); } Thread.sleep(1000); System.out.println(c.getCount()); // 輸出 10000
總之,Java 的多進程和多線程實現可以很好地提高程序的并發能力和響應速度,但也需要注意同步和資源競爭的問題,以保證程序的正確性和性能。