Java集合框架操作不当:集合并发问题实例

原创 落日映苍穹つ 2024-09-25 08:27 117阅读 0赞

在Java集合框架中,如果操作不当,可能会引发并发问题。以下是一个常见的例子:

  1. // 假设我们有一个线程安全的ArrayList
  2. List<String> list = new ArrayList<>();
  3. // 创建两个并发任务
  4. ExecutorService executor = Executors.newFixedThreadPool(2);
  5. Runnable task1 = () -> {
  6. for (int i = 0; i < 100; i++) {
  7. list.add("Item " + i);
  8. }
  9. };
  10. Runnable task2 = () -> {
  11. while (!list.isEmpty()) {
  12. String item = list.remove();
  13. System.out.println("Processing: " + item);
  14. }
  15. };
  16. // 同时执行任务
  17. executor.execute(task1);
  18. executor.execute(task2);
  19. // 关闭线程池
  20. executor.shutdown();
  21. // 检查线程池是否已经停止所有工作
  22. while (!executor.isTerminated()) {
  23. // 如果这里发生异常,可能会导致其他任务无法正确关闭
  24. Thread.sleep(100);
  25. }

在这个例子中,我们创建了两个并发任务,分别向集合添加元素和从集合移除并处理元素。如果线程池管理不当,可能会出现并发问题,如数据不一致、丢失更新等。

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

发表评论

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

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

相关阅读