Java并发编程:线程池和同步工具使用示例

原创 Myth丶恋晨 2024-12-13 14:27 118阅读 0赞

在Java中,线程池和同步工具是处理多线程任务和保证数据一致性的重要手段。以下是这两个方面的使用示例:

  1. 线程池

线程池可以重复使用已创建的线程,避免频繁地创建和销毁线程。

以下是一个简单的线程池创建并执行任务的例子:

  1. import java.util.concurrent.Executors;
  2. import java.util.concurrent.TimeUnit;
  3. public class ThreadPoolExample {
  4. public static void main(String[] args) {
  5. // 创建一个可容纳10个线程的线程池
  6. ExecutorService executor = Executors.newFixedThreadPool(10);
  7. // 提交任务到线程池
  8. for (int i = 0; i < 50; i++) { // 每个任务执行10次
  9. Runnable task = () -> {
  10. System.out.println("Task " + i + " executed " + j);
  11. try {
  12. Thread.sleep(100); // 模拟耗时操作
  13. } catch (InterruptedException e) {
  14. e.printStackTrace();
  15. }
  16. };
  17. executor.execute(task); // 提交任务到线程池
  18. }
  19. // 关闭线程池,不再提交新的任务
  20. executor.shutdown();
  21. try {
  22. // 等待所有任务完成
  23. executor.awaitTermination(5, TimeUnit.SECONDS);
  24. } catch (InterruptedException e) {
  25. e.printStackTrace();
  26. }
  27. }
  28. }
  1. 同步工具

在多线程环境中,同步工具(如synchronized关键字、ReentrantLock等)用于控制对共享资源的访问。

以下是一个使用synchronized关键字同步一个方法的例子:

  1. public class SharedResourceExample {
  2. private int sharedValue = 0;
  3. public synchronized void incrementSharedValue() {
  4. sharedValue++;
  5. System.out.println("Incremented shared value: " + sharedValue);
  6. }
  7. public synchronized void decrementSharedValue() {
  8. sharedValue--;
  9. System.out.println("Decremented shared value: " + sharedValue);
  10. }
  11. }

在这个例子中,incrementSharedValue()decrementSharedValue() 方法都使用了synchronized关键字来保证在同一时刻只有一个线程可以访问这些方法。

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,118人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Java并发编程线示例

    在Java中,线程池是一种常用的管理线程的方式。它通过维护一组工作线程,并且根据请求动态添加或回收线程,以提高系统的并发处理能力。 以下是一个简单的线程池示例: ```ja