当前位置:网站首页>The essence of transaction and the principle of deadlock
The essence of transaction and the principle of deadlock
2020-11-06 21:35:00 【Irving the procedural ape】
Only with MySQL and spring For example ,, This article does not introduce the concepts of transactions and locks .
This paper uses pseudo code to represent method code , Only express the meaning of the method and transaction annotation
〇、 The shape of the transaction
In my heart , Business has always been like this
x Axis is a locked resource ,y The axis is the time consumed ,
The transaction box moves down over time ,
When touching x Lock the shaft , Skip over x When the axis is unlocked
The picture above is about the method a The transaction shape of , I named it 【 Transaction box 】, I'm sorry I don't know how to do motion maps , In this paper, we express the best by moving graph .
@Transactional
function a(){
Yes A Table modification , It took five seconds
}
One 、 A lot of business
When a method calls multiple child methods annotated by a transaction, the situation is
The picture above is about the method abc Invocation time ,a Method 、b Method 、c The transaction shape of the method function abc(){
this.a(){}
this.c(){}
}
@Transactional
function a(){
Yes A Table modification , It took five seconds
}
@Transactional
function b(){
Yes B Table modification , It took five seconds
}
@Transactional
function c(){
Yes C Table modification , It took five seconds
}
among abc When the method starts to execute , Execute to a Method , lock a surface , When a Method end b At the beginning of the method ,a Table unlocking ,b Table locking , When b Method end c At the beginning of the method ,b Table unlocking c Table locking .
It is equivalent to that the three transaction blocks in the figure below are united and locked together , Total operation time 15 second
If concurrent requests are made twice abc Method, the transaction box is shown in the figure below
among a The watch will be asked first 1 lock 5 Seconds later to unlock , Be asked again 2 lock 5 second ,
among b The watch will also be requested first 1 lock 5 Seconds later to unlock , Be asked again 2 lock 5 second ,
among c The watch will also be requested first 1 lock 5 Seconds later to unlock , Be asked again 2 lock 5 second ,
The request 1 In the unlock table a And then it locked the watch b Five seconds , At the same time a Be asked again 2 lock 5 second
By analogy , request 2 All asking for 1 After unlocking the corresponding table , Lock the table ,
So the total running time 20 second
Two 、 Large transactions @Transactional
function abc(){
this.a(){}
this.b(){}
this.c(){}
}
funct.........
版权声明
本文为[Irving the procedural ape]所创,转载请带上原文链接,感谢
边栏推荐
- Python basic data type -- tuple analysis
- An article will take you to understand CSS3 fillet knowledge
- Take you to learn the new methods in Es5
- Elasticsearch database | elasticsearch-7.5.0 application construction
- Python basic variable type -- list analysis
- 检测证书过期脚本
- 2020-09-04:函数调用约定了解么?
- To teach you to easily understand the basic usage of Vue codemirror: mainly to achieve code editing, verification prompt, code formatting
- window系统 本机查找端口号占用方法
- Axios learning notes (2): easy to understand the use of XHR and how to package simple Axios
猜你喜欢
2020-08-20:GO语言中的协程与Python中的协程的区别?
How to play sortable JS vuedraggable to realize nested drag function of forms
Basic usage of Vue codemirror: search function, code folding function, get editor value and verify in time
Exclusive interview of guests at | 2020 PostgreSQL Asia Conference: Wang Tao
Unity performance optimization
Road to simple HTML + JS to achieve the most simple game Tetris
Vue communication and cross component listening state Vue communication
行为型模式之备忘录模式
Multi robot market share solution
【学习】接口测试用例编写和测试关注点
随机推荐
Behind the record breaking Q2 revenue of Alibaba cloud, the cloud opening mode is reshaping
Small program introduction to proficient (2): understand the four important files of small program development
上海巨微专用蓝牙广播芯片
An article takes you to understand CSS3 picture border
2020 database technology conference helps technology upgrade
To Lianyun analysis: why is IPFs / filecoin mining so difficult?
Can you do it with only six characters?
With this artifact, quickly say goodbye to spam messages
递归、回溯算法常用数学基础公式
Take you to learn the new methods in Es5
PHP application docking justswap special development kit【 JustSwap.PHP ]
Vue communication and cross component listening state Vue communication
ES6 learning notes (3): teach you to use js object-oriented thinking to realize the function of adding, deleting, modifying and checking tab column
git远程库回退指定版本
Pn8162 20W PD fast charging chip, PD fast charging charger scheme
Common syntax corresponding table of mongodb and SQL
EOS founder BM: what's the difference between UE, UBI and URI?
Summary of front-end interview questions (C, s, s) that front-end engineers need to understand (2)
C and C / C + + mixed programming series 5 - GC collaboration of memory management
Top 5 Chinese cloud manufacturers in 2018: Alibaba cloud, Tencent cloud, AWS, telecom, Unicom