并发设计模式
根据线程的分工,避免共享,多线程版本的if,而产生的并发设计模式
qq_599571116
这个作者很懒,什么都没留下…
展开
-
并发设计模式1-避免共享
并发问题产生条件:多个线程同时对共享变量进行读写操作。解决并发问题,我们平时都是加互斥锁,防止同时进行读写操作,其实换个角度想,避免共享,就可以了。接下来介绍三种避免共享的三种模式:Immutability 模式、Copy-on-Write 模式和线程本地存储模式。Immutability 模式(不变性模式)该模式解决并发问题的思路就是让共享变量只有读操作,没有写操作。即,不变性,**就...原创 2020-03-06 20:06:45 · 270 阅读 · 0 评论 -
java使用STM原理实现转账
首先我们先来看看账户类class Account { // 余额 private TxnRef<Integer> balance; // 构造方法 public Account(int balance) { this.balance = new TxnRef<Integer>(balance); } // 转账操作,该操作我们要保证 1.txn这个事务是原...原创 2020-03-07 15:10:34 · 1138 阅读 · 0 评论 -
MVCC原理-软件事务内存STM(浅入)
首先我们先来解释一下题目的关系:MVCC(多版本并发控制):数据库事务的实现数据库中的事务机制非常简单使用,比java的锁,原子类强很多。因此,为了提高性能,模仿数据库的事务机制产生了软件事务内存STM。下面我们用三段代码展示STM:这个是我们用java来模拟实现转账的业务,可以发现这个是线程不安全的,需要我们加锁,同时要防止死锁等问题。class UnsafeAccount { ...原创 2020-03-07 15:16:00 · 621 阅读 · 0 评论