读《java高并发程序设计》笔记
821770300
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
java高并发 原子性 有序性和可见性 解释
原子性:一个操作是不可中断的。即使多个线程一起执行的时候,一个操作一旦开始,就不会被其他线程干扰。有序性:程序在执行时,可能会进行指令重排,重拍后的指令与原指令顺序未必一致;使用(synchronized)保证有序可见性:一个线程修改某一个共享变量的值,其他线程立即知道修改结果。(volatile)...原创 2018-10-31 17:30:18 · 402 阅读 · 0 评论 -
wait和sleep区别
自己给自己一点压力,每天学习,每天进步。sleep和wait 区别:wait可以主动被唤醒,wait会释放目标对象锁,而sleep不会释放任何资源实例:运行结果有时候有出入 请多试几次 原因可能是:线程切换 ...原创 2018-10-30 16:39:44 · 164 阅读 · 0 评论 -
线程管理
线程池: 避免系统频繁的创建和销毁线程; 提高创建线程进行复用;ThreadPoolExecutor 方法 返回值 解释 newFixedThreadPool(int nThreads) ExecutorService 固定线程数量的线程池;无空闲线程,任务暂存任务队列中,待有空闲线程便处理在任务队列中的线程 newSingleThreadExec...原创 2018-11-06 14:05:44 · 339 阅读 · 0 评论 -
java 多线程中常用的锁
1.synchronized (同步)2.object.wait() object.notify() (配合synchronized使用)3.readWriteLock(读写锁) 读 写 读 非阻塞 阻塞 写 阻塞 阻塞 注:读操作次数远大于写操作,读写锁优势最大4.condition (配合lock使用 类似 object...原创 2018-11-02 15:42:57 · 810 阅读 · 0 评论 -
并发集合
jdk 提供的容器大部分在java.util.concurrent包中。ConcurrentHashMap:高效的并发HashMap。线程安全的HashMap。CopyOnWriteArrayList:在读多写少的场合,性能高于Vector。ConcurrentLinkedQueue:高效的并发队列,链表实现,线程安全的LinkedList。BlockingQueue:接口,jdk...原创 2018-11-20 15:25:42 · 196 阅读 · 0 评论 -
提高“锁”性能
1.减少锁持有时间2.减小锁的粒度 (尽可能的细化业务代码,业务方法,在需要加锁的方法上进行加锁)3.锁分离(读写锁) 参考LinkedBlockingQueue take(),put() 4.锁粗化(和减少锁持有时间相反,主要针对很快能执行完成的操作) 锁优化 偏向锁:一个线程获得了锁,那么锁就进入偏向模式。当这个线程再次请求锁时,无须在做任何同步操作,节省了锁申...原创 2018-11-20 15:28:39 · 160 阅读 · 0 评论
分享