![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
文章平均质量分 59
MarkUpppp
这个作者很懒,什么都没留下…
展开
-
volatile 可以保证可见性,但不能保证原子性
转自:http://blog.csdn.net/shukebai/article/details/51163068 在Java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉。 Java语言是支持多线程的,为了解决线程并发的问题,在语言内部引入了 同步块 和 volatile 关键字机制。转载 2017-03-28 21:50:17 · 1624 阅读 · 1 评论 -
使用迭代器遍历List的时候修改List报ConcurrentModificationException异常原因分析
转自:http://www.cnblogs.com/liuling/p/2013-8-21-04.html 在使用Iterator来迭代遍历List的时候如果修改该List对象,则会报java.util.ConcurrentModificationException异常,下面看一个例子演示: 1 package com.others; 2 3 import转载 2017-03-29 16:10:01 · 309 阅读 · 0 评论 -
ThreadPoolExecutor分析与理解(1)
由继承关系可以看出线程池的顶级接口是Executor,但正如我之前在接口和抽象类中所说的,Executor并不是描述一个线程池,它只提供了一个 void execute(Runnable command)方法,可以看出来是执行任务的入口。 真正的线程池接口描述是ExecutorService,里面已经提供了shutdown(),submit(Callable task)等核心方法,而真正的线程池实原创 2017-03-22 17:25:27 · 315 阅读 · 0 评论 -
ThreadLocal用法和原理
ThreadLocal使用背景: ThreadLocal的作用是提供线程内的局部变量,这种变量在线程的生命周期内起作用,减少同一个线程内多个函数或者组件之间一些公共变量的传递的复杂度。在多个线程对一个对象进行频繁操作,而且此时并不希望看到其他线程的修改痕迹,而是希望每个线程都能有自己的局部变量时,ThreadLocal就充当了对这个变量的包装,使得针对每个线程都是局部变量。 最常见的还是一些工具原创 2017-04-09 02:22:33 · 404 阅读 · 0 评论 -
Java并发编程——锁与可重入锁
转载:http://www.jianshu.com/p/007bd7029faf 简单锁 在讲述简单锁的实现之前,我们先来看一个锁的应用例子: public class Counter{ private Lock lock = new Lock(); private int count = 0; public int inc(){ lock.l转载 2017-05-14 21:46:33 · 246 阅读 · 0 评论