随笔分类 - 多线程
摘要:队列中锁的实现不同ArrayBlockingQueue实现的队列中的锁是没有分离的,即生产和消费用的是同一个锁;LinkedBlockingQueue实现的队列中的锁是分离的,即生产用的是putLock,消费是takeLock 因此,LinkedBlockingQueue的一大优点也是ArrayBl
阅读全文
摘要:** * 对业务写方法加锁 * 对业务读方法不加锁 * 容易产生脏读问题 就是对写加锁但对读没有加锁,这样在写的过程中可能还没写完就被读了 * * */public class Demo { String name; double balance; public synchronized void
阅读全文
摘要:在一个迭代器初始的时候会赋予它调用这个迭代器的对象的modcount,如果在迭代器遍历的过程中,一旦发现这个对象的modcount和迭代器中存储的modcount不一样那就抛异常 完整解释 :Fail-Fast 机制 我们知道 java.util.HashMap 不是线程安全的,因此如果在使用迭代器
阅读全文
摘要:public class CountDownLatch { public static void main(String[] args) throws Exception{ java.util.concurrent.CountDownLatch countDownLatch = new java.u
阅读全文
摘要:首先,volatile:是一个类型修饰符 作用: 一是实现可见性,即一个线程修改了某个变量的值,这个新值对其他线程来说是立即可见的。(实现可见性) //线程1 boolean stop = false; while(!stop){ doSomething(); } //线程2 stop每个线程在运行
阅读全文

浙公网安备 33010602011771号