Méthodes d'implémentation de la programmation parallèle Java : 1. Multi-threading, 2. Pool de threads, 3. Verrouillage, 4. Variables atomiques Le choix de la méthode appropriée dépend des exigences, par exemple : Débit élevé : multi-threading ou pool de threads Faible réponse. time : pool de threads ou ressources de variables atomiques limitées : pool de threads ou verrou
Comment implémenter la programmation parallèle en Java
Java fournit une variété de mécanismes pour implémenter la programmation parallèle, notamment :
Comment choisir la méthode de mise en œuvre appropriée ?
Le choix de l'implémentation de programmation parallèle appropriée dépend des besoins de l'application :
Cas pratique :
Utiliser le pool de threads pour améliorer le débit :
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(); } } } }
Utiliser des variables atomiques pour assurer la sécurité des threads :
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()); } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!