摘要:
CAS compare and swap的缩写,中文翻译成比较并交换,实现并发算法时常用到的一种技术。 它包含三个操作数——内存位置、预期原值及更新值。 执行CAS操作的时候,将内存位置的值与预期原值比较:如果相匹配,那么处理器会自动将该位置值更新为新值, 如果不匹配,处理器不做任何操作,多个线程同 阅读全文
posted @ 2022-07-19 08:48
我是小杨
阅读(38)
评论(0)
推荐(0)
摘要:
首先看一下interrupt的三个方法 代码 public class Interrupt { public static void main(String[] args) { Thread t1 = new Thread(() -> { while (true) { if(Thread.curre 阅读全文
posted @ 2022-07-19 08:48
我是小杨
阅读(66)
评论(0)
推荐(0)
摘要:
公平与非公平锁 非公平锁更能充分的利用cpu的时间片,尽量减少cpu的空闲状态时间 使用多线程最重要的是线程切换的开销,当采用非公平锁时,当一个线程请求锁获取同步状态,然后释放同步状态,所以刚释放锁的线程在此刻获取同步状态的概率就变得非常大,所以就减少了线程的开销。 ReentrantLock lo 阅读全文
posted @ 2022-07-19 08:48
我是小杨
阅读(82)
评论(0)
推荐(0)
摘要:
volatile的可见性 使用volatile修饰共享变量,就可以达到上面的效果,被volatile修改的变量有以下特点: 1.线程中读取的时候,每次读取都会去主内存中读取共享变量最新的值,然后将其复制到工作内存 2.线程中修改了工作内存中变量的副本,修改之后会立即刷新到主内存 如果使用starti 阅读全文
posted @ 2022-07-19 08:48
我是小杨
阅读(31)
评论(0)
推荐(0)
摘要:
可以把它理解为 一个同步工具,也可以描述为 一种同步机制,它通常被 描述为一个对象。与一切皆对象一样,所有的Java对象是天生的Monitor,每一个Java对象都有成为Monitor的潜质,因为在Java的设计中 ,每一个Java对象自打娘胎里出来就带了一把看不见的锁,它叫做内部锁或者Monito 阅读全文
posted @ 2022-07-19 08:48
我是小杨
阅读(122)
评论(0)
推荐(0)
摘要:
乐观锁和悲观锁是什么 悲观锁 认为自己在使用数据的时候一定会有别的线程来修改数据,因此在获取数据的时候会先加锁,确保数据不会被别的线程修改。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。synchronized和ReentrantLock实现类 阅读全文
posted @ 2022-07-19 08:48
我是小杨
阅读(95)
评论(0)
推荐(0)
摘要:
函数式编程后执行的一些问题 值得传递写起来不方便 我们如果要连续的执行一系列函数,并且传递计算某个值,会写起来很难受 连续调用写起来很麻烦 连续调用一系列函数,写起来很麻烦 Compose Compose函数可以理解为为了方便我们连续执行方法,把自己调用传值得过程封装了起来我们只需要给compose 阅读全文
posted @ 2022-07-19 08:45
我是小杨
阅读(52)
评论(0)
推荐(0)