![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java并发原理
宇宙第一苟冬熙
这个作者很懒,什么都没留下…
展开
-
Java并发原理学习笔记+总结+实战(1)
为什么要学习并发编程? •1.发挥多处理的强大能力 •2.建模的简单性 •3.异步事件的简化处理 •4.响应更加灵敏的用户界面 •1.找工作,面试 •2.了解并发编程的原理,提高代码的编写能力 •3.解决工作中遇到的并发问题 ...... 线程与进程 首先要先学会区分线程和进程: 进程:运行中的程序,是资源分配的基本单位。进程中包含多个线程,线程共享进程的资...原创 2019-02-28 16:33:29 · 182 阅读 · 0 评论 -
Java并发原理学习笔记+总结+实战(2)——线程带来的风险
1、线程带来的风险 java对线程的支持其实是一把双刃剑。虽然java提供了相应的语言和库,以及一种明确的跨平台内存模型,这些工具简化了并发应用程序的开发,但同时也提高的对开发人员的技术要求,因为更多的程序中会使用线程。 1.1 线程的安全性问题 线程安全性可能是非常复杂的,在没有充分同步的情况下,多个线程中的操作次序是不可预测的,甚至会产生奇怪的结果。 /** * U...原创 2019-03-01 16:11:38 · 193 阅读 · 0 评论 -
Java并发原理学习笔记+总结+实战(3)——单例与线程安全问题
1.单例模式 饿汉模式 public class Singleton { // 私有化构造方法 private Singleton() { } private static Singleton instance = new Singleton(); public static Singleton getInstance() { return instance...原创 2019-03-14 10:32:18 · 137 阅读 · 0 评论 -
Java并发原理学习笔记+总结+实战(4)——volatile的原理与使用
volatile是一种轻量级锁,被volatile关键字修饰的变量,在线程之间是可见的。即一个线程修改了这个变量的值,在另一个线程中能够读到这个修改后的值。 像我们之前所说的synchronize除了能让线程之间互斥以外,还有一个非常大的作用就是办证变量的可见性。 /** * 保证可见性的前提 * <p> * 多个线程拿到的是同一把锁,否则是保证不了的。 ...原创 2019-03-14 15:33:25 · 177 阅读 · 0 评论 -
Java并发原理学习笔记+总结+实战(5)——Lock接口
一、 在JDK1.5之后,在java.util.concurrent.locks的包中提供了另一种实现代码同步的方法,Lock。 在前面说过,synchronize锁是一种重量级的,特别耗费资源的锁。在使用synchronize中,当线程被阻塞或等待处理,但又没有释放锁时,其他线程只能在外面等待,非常影响执行效率。这就需要有一种机制可以不让等待的线程一直无期限地等待下去(比如只...原创 2019-03-15 11:07:01 · 198 阅读 · 0 评论 -
Java并发原理学习笔记+总结+实战(6)——可重入锁
Java中常用的重入锁 java中重入锁的定义是指可重复、递归调用的锁,在得到同一个对象或类的前提下,外层使用锁之后,在内层中依然可是使用且不会发生死锁。其中最常见的关键字是synchronize和reentrantLock这两个。 使用synchronize实现 import java.util.concurrent.TimeUnit; import java.util.conc...原创 2019-04-02 14:49:43 · 209 阅读 · 0 评论