多线程与高并发
文章平均质量分 80
sixabs
I am a coder, code my life.
展开
-
Java并发编程可见性问题
介绍了可见性问题的产生,什么是可见性,可见性问题如何解决的。原创 2022-10-30 17:24:30 · 458 阅读 · 1 评论 -
《Java并发编程实战》笔记5:基础构建
1 同步容器类有哪些同步容器。同步容器类包括Vector、Stack、HashTable和Collections.synchronizedXxx工厂方法创建的容器。实现同步的方式。Vector、Stack、HashTable直接在方法上加synchronized关键字实现同步。Collections.synchronizedXxx通过定义一系列内部类SynchronizedXxx实现Synch...原创 2019-09-29 10:41:25 · 106 阅读 · 0 评论 -
《Java并发编程实战》笔记4:对象的组合
1 如何设计一个线程安全的类?在设计线程安全类的过程中,需要包含以下三个基本要素:找出构成对象状态的所有变量找出约束状态变量的不变性条件,后验条件建立对象状态的并发访问管理策略2 什么是实例封闭实例封闭机制(Instance Confinement)将一个对象X(通常非线程安全)封装到另一个对象A内部,只能通过A的方法访问X,并通过A的内置锁对方法加锁,则可以实现访问对象X的线程安...原创 2019-08-18 16:46:19 · 123 阅读 · 0 评论 -
《Java并发编程实战》笔记3:对象的共享
1 什么是可见性,再说说volatile变量JVM内存模型时总结了2 什么是对象的发布与逸出?发布(Publish):一个对象是指,使对象能够在当前作用域之外的代码中使用。逸出(Escape):是一种错误的发布, 当一个对象还没有构造完成时 , 就使得它被其他线程看见。3 发布对象的几种情形(1) 将对象的引用保存到一个公有的静态变量中(2) 如果一个已经发布的对象能够通过非私有的变...原创 2019-08-18 16:31:16 · 116 阅读 · 0 评论 -
JUC包都有哪些内容
1 atomic包核心是CAS,主要提供了一系列原子变量更新操作的类,提供非阻塞式算法基础。2 locks包主要提供了显示锁,如重入锁(ReentrantLock)和读写锁(ReadWriteLock)。核心是AQS这个抽象队列同步器框架。J.U.C包中很多工具类都是基于AQS实现的,如3 并发容器4 执行框架与线程池5 并发工具类...原创 2019-08-04 18:46:16 · 15877 阅读 · 0 评论 -
J.U.C之locks包
先放上我花了1小时画的图,看完之后对java.utils.concurrent.locks包有个大致印象注意:此图是我自己画的,转载此图请注明出处,加上此图原文链接原创 2019-06-25 11:56:34 · 134 阅读 · 0 评论 -
《Java并发编程实战》笔记2:线程安全性
共享(Shared) — 变量可以由多个线程同时访问可变(Mutable) — 变量的值在生命周期内可以发生变化Java中的同步机制 — synchronized,volatile,显式锁(Explicit Lock),原子变量。如何修复没有同步的可变的状态变量?不在线程之间共享该状态变量将状态变量修改问不可变的变量在访问状态变量时使用同步当设计线程安全的类时,良好的面向对...原创 2019-06-18 11:45:42 · 132 阅读 · 0 评论 -
《Java并发编程实战》笔记1:简介
为什么要使用并发?提高资源利用率,程序执行的公平性,编写程序便利性。线程的优势?发挥多处理器的强大能力;建模简单性,降低程序开发和维护成本;异步事件简化处理处理;响应更灵敏的用户界面。线程带来的风险?安全性问题:多个线程执行顺序是非常复杂的,如果实现不当很可能带来安全性问题;活跃性问题:如死锁,饥饿以及活锁等。性能问题:频繁的线程切换和调度将会导致更多的CPU资源消耗在这...原创 2019-06-18 10:51:09 · 107 阅读 · 0 评论 -
J.U.C之atomic包
本文从现在器专门收集一些讲解Java相关知识点的博客,整理成一个目录,以供以后翻看查阅。 1 集合类 知识点名称 链接地址 知识点名称 链接地址 ...原创 2019-06-23 12:14:22 · 120 阅读 · 0 评论 -
Java中CAS原理
引例:在执行i++;操作时由于不是原子操作,所以我们需将该复合操作进行加锁来保证该操作的原子性。一种方法是采用悲观锁策略synchronized关键字,另一种更高效的方法是采用硬件支撑的CAS(Compare-and-Swap)操作来实现。CAS操作其实对应了硬件处理器底层的一个一个3操作数指令。在Java中该操作由sun.misc.Unsafe类里面的compareAndSwap***()提供...原创 2019-06-23 11:07:11 · 1028 阅读 · 0 评论