分类: 后端
在 java并发编程(十七)——深入剖析乐观锁-悲观锁 一文中我们在学习乐观锁时提到了CAS,本文来深入研究下CAS的原理及应用场景。
CAS的英文全称是 Compare-And-Swap,中文叫做“比较并交换”,它是一种思想、一种算法。
在多线程的情况下,各个代码的执行顺序是不能确定的,所以为了保证并发安全,我们可以使用互斥锁。而 CAS 的特点是避免使用互斥锁,当多个线程同时使用 CAS 更新同一个变量时,只有其中一个线程能够操作成功,而其他线程都会更新失败。不过和同步互斥锁不同的是,更新失败的线程并不会被阻塞,而是被告知这次由于竞争而导致的操作失败,但还可以再次尝试。
2021-02-26
23
0
分类: 后端
我们之前主要学习过通过synchronized关键字来实现资源的互斥访问,今天我们来学习下另一种方式来实现互斥—— Lock。
Lock 接口是 Java 5 引入的,最常见的实现类是 ReentrantLock,可以起到“锁”的作用。
Lock 和 synchronized 是两种最常见的锁,锁是一种工具,用于控制对共享资源的访问,而 Lock 和 synchronized 都可以达到线程安全的目的,但是在使用上和功能上又有较大的不同。所以 Lock 并不是用来代替 synchronized 的,而是当使用 synchronized 不合适或不足以满足要求的时候,Lock 可以用来提供更高级
2021-02-25
32
0
分类: 后端
在 java并发编程(一)——线程的创建 一节中我们学习了线程创建的几种常见方法,今天我们来对callable及future实现线程的常见用法进行探究学习。
接口源码:
可以看到run() 方法的返回类型是 void,而且这个方法没有声明抛出任何异常。所以,当实现并重写这个方法时,我们既不能改返回值类型,也不能更改对于异常抛出的描述,因为在实现方法的时候,语法规定是不允许对这些内容进行修改的。
2021-02-24
17
0
分类: 后端
在 Java并发编程(四)——synchronized关键字实现加锁 中我们学习了在并发场景下最简单的同步方式就是利用 synchronized 关键字来修饰代码块或者修饰一个方法,那么这部分被保护的代码,在同一时刻就最多只有一个线程可以运行,而 synchronized 的背后正是利用 monitor 锁实现的。
所以首先我们来看下获取和释放 monitor 锁的时机,每个 Java 对象都可以用作一个实现同步的锁,这个锁也被称为内置锁或 monitor 锁,获得 monitor 锁的唯一途径就是进入由这个锁保护的同步代码块或同步方法,线程在进入被 synchronized 保护的代码块之前
2021-02-23
463
0
分类: 后端
在前面一节中我们初识了锁的七大分类及特点,不了解的同学请移步 锁的七大分类及特点
本文我们从悲观锁/乐观锁的分类角度出发,来学习下悲观锁及乐观锁的特点及原理。
注意:悲观锁和乐观锁是从是否锁住资源的角度进行分类的。
2021-02-23
459
0
分类: 后端
在处理并发相关的问题时,我们首先想到的一个解决方案就是给共享的资源加锁,实现同一时刻对同一个资源的互斥访问,本文我们来学习下锁的相关知识。
比如评价一个城市,标准有人口多少、经济发达与否、城市面积大小等,这些都是评价事物的标准,而一个城市可能同时占据多个标准,以北京而言,人口多,经济发达,同时城市面积还很大。
同理,对于 Java 中的锁而言,一把锁也有可能同时占有多个标准,符合多种分类,比如 ReentrantLock 既是可中断锁,又是可重入锁。
2021-02-22
452
0
分类: 后端
在 Java并发编程(六)——三种方式实现生产者消费者模式 一节中我们使用阻塞队列(BlockingQueue)来实现生产者消费者模式,但是我们对阻塞队列内部的原理并没有进行深入的探讨,本节我们来学习一下Java中阻塞队列的相关知识。
Java中队列的接口是Queue,其实现类如下图所示:
2021-02-22
464
0
分类: 诗和远方
《影响力》是美国心理学家罗伯特·西奥迪尼所著,书中从一些人类的普遍存在的行为现象出发,归纳总结出一些常见的心理学的逻辑,值得我们细细品味。下面我整理出书中的几个代表性的例子来解读作者的观点。
有很多研究都表明,当人们对一件商品的质量没有把握时,的确经常使用这个公式(Olsen,1977)。因此,在这些一心想买到优质珠宝的度假者心目中,同样的绿松石珠宝,价钱越贵,价值就越高,吸引力也就跟着上涨。换句话说,价格成了质量的一个启动特征:价格的戏剧性增加,导致了在这群追求品质的顾客当中销售量的戏剧性增加。
结合生活中的例子,确实是这样子,假如同样的两件商品,如果一个价钱稍微高些,我们会下意识的认为价钱
2021-02-06
498
1
分类: 诗和远方
去年的时候看了电视剧《天道》,后来又去看了豆豆的原著小说《遥远的救世主》,小说主要是在一个杀富济贫的故事框架之下,衍生出了许多对于文化、社会、爱情、亲情等元素的思考,其中的有些观点颠覆了我以往的认知,也影响了我对某些事情的看法。下面是我的部分摘录。
我们这个民族总是以有文化自居,却忘了问一句:是有什么文化?是真理真相的文化还是弱势文化?是符合事物规律的文化还是违背事物规律的文化?任何一种命运,归根到底都是那种文化属性的产物,不以人的意志为转移。
中国的传统文化是皇恩浩大的文化,它的实用是以皇天在上为先决条件。中国为什么穷?穷就穷在幼稚的思维,穷在期望救主、期望救恩的文化上,这是一个渗透到民族骨
2021-02-06
481
0