Java 平行程式實作方式:1. 多執行緒、2. 執行緒池、3. 鎖定、4. 原子變數選擇適當方式取決於需求,例如:高吞吐量:多執行緒或執行緒池低迴應時間:執行緒池或原子變數資源受限:執行緒池或鎖定
Java 並行程式設計的實作方式
##Java 提供了多種實作並行程式設計的機制,包括:如何選擇合適的實作方式?
選擇合適的平行程式實作方式取決於應用程式的需求:實戰案例:
使用執行緒池提高吞吐量:
import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class ThreadPoolDemo { public static void main(String[] args) { // 创建一个固定大小的线程池 ExecutorService executor = Executors.newFixedThreadPool(10); // 创建任务 Runnable task = () -> { System.out.println("Hello from thread " + Thread.currentThread().getName()); }; // 提交任务到线程池 for (int i = 0; i < 100; i++) { executor.submit(task); } // 等待所有任务完成 executor.shutdown(); while (!executor.isTerminated()) { try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } } } }
使用原子變量實作線程安全:
import java.util.concurrent.atomic.AtomicInteger; public class AtomicVariableDemo { public static void main(String[] args) { // 创建一个原子整数 AtomicInteger counter = new AtomicInteger(0); // 两个线程同时更新计数器 Thread thread1 = new Thread(() -> { for (int i = 0; i < 100000; i++) { counter.incrementAndGet(); } }); Thread thread2 = new Thread(() -> { for (int i = 0; i < 100000; i++) { counter.incrementAndGet(); } }); thread1.start(); thread2.start(); // 等待线程完成 try { thread1.join(); thread2.join(); } catch (InterruptedException e) { e.printStackTrace(); } // 打印最终计数器值 System.out.println("Final count: " + counter.get()); } }
以上是Java並行程式設計的實作方式有哪些?該如何選擇?的詳細內容。更多資訊請關注PHP中文網其他相關文章!