原文:java 多线程操作List,已经做了同步synchronized,还会有ConcurrentModificationException,知道为什么吗?

如题,最近项目里有个模块我做了异步处理方面的事情,在code过程中发现一个颠覆我对synchronized这个关键字和用法的地方,请问各位java开发者们是否对此有一个合理的解释,不多说,我直接贴出问题代码: 事实证明这是一个坑,各位读者,如果有兴趣,可以先不看答案,自己看看能不能发现这个坑 输出结果是: 分隔线,以下是解释 问题明了了: 以上问题不是并发的问题,是ArrayList的问题,是个坑 ...

2013-10-12 16:30 2 35756 推荐指数:

查看详情

Java基础-多线程-③线程同步synchronized

使用线程同步解决多线程安全问题   上一篇 Java基础-多线程-②多线程的安全问题 中我们说到多线程可能引发的安全问题,原因在于多个线程共享了数据,且一个线程操作(多为写操作)数据的过程中,另一个线程也对数据进行了操作,从而导致数据出错。由此我们想到一个解决的思路:将操作共享数据的代码行 ...

Sun Jul 27 05:41:00 CST 2014 0 10626
Java多线程同步机制(synchronized)

一段synchronized的代码被一个线程执行之前,他要先拿到执行这段代码的权限,在 java里边就是拿到某个同步对象的锁(一个对象只有一把锁); 如果这个时候同步对象的锁被其他线程拿走了,他(这个线程)就只能等了(线程阻塞在锁池 等待队列中)。 取到锁后,他就开始执行同步代码 ...

Fri Jul 29 05:57:00 CST 2016 3 22365
Java多线程同步Synchronized使用分析

同步的概念: 同步分为 同步方法 和 同步块 两种方式。 锁定的内容分为 锁定类的某个特定实例 和 锁定类对象(类的所有实例) 变量分为 实例变量(不带static的变量) 和 类变量(带static的变量) 使用同步的原因 1. 在系统中对访类要使用多线程进行访问; 2. 在该类中有 ...

Wed Feb 29 07:06:00 CST 2012 0 5147
java多线程编程之使用Synchronized同步变量

我们可以通过synchronized块来同步特定的静态或非静态方法。要想实现这种需求必须为这些特性的方法定义一个类变量,然后将这些方法的代码用synchronized块括起来,并将这个类变量作为参数传入synchronized块 下面的代码演示了如何同步特定的类方法 ...

Sun Oct 19 08:06:00 CST 2014 0 4797
Java多线程机制系列:(三)synchronized同步原理

synchronized关键字是JDK5之实现锁(包括互斥性和可见性)的唯一途径(volatile关键字能保证可见性,但不能保证互斥性,详细参见后文关于vloatile的详述章节),其在字节码上编译为monitorenter和monitorexit这样的JVM层次的原语(原语的意思是这个命令是原子 ...

Thu Dec 26 04:01:00 CST 2013 3 7977
java多线程线程同步synchronized(不同步的问题、队列与锁),死锁的产生和解决

0、不同步的问题 并发的线程不安全问题: 多个线程同时操作同一个对象,如果控制不好,就会产生问题,叫做线程不安全。 我们来看三个比较经典的案例来说明线程不安全的问题。 0.1 订票问题 例如前面说过的黄牛订票问题,可能出现负数或相同。 线程创建方式&&黄牛订票 ...

Tue Aug 18 21:45:00 CST 2020 2 1219
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM