成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

并發(fā)編程的原子性 != 事務(wù)ACID的原子性

數(shù)據(jù)庫(kù) Redis
在數(shù)據(jù)庫(kù)中的原子性,確實(shí)是一個(gè)不可拆分的工作單元,要么都執(zhí)行,要么都不執(zhí)行。因?yàn)槭聞?wù)可以Commit、也可以Rollback。?

關(guān)于原子性,很多人在多個(gè)地方都聽說過,大家也都背的很熟悉。

在事務(wù)的ACID中,有原子性的概念,在并發(fā)編程的原子性、可見性、有序性中也有原子性的概念。?

有人認(rèn)為他們是一樣的,甚至很多人在說原子性的時(shí)候也都是這么說的:?


?原子性是指事務(wù)是一個(gè)不可再分割的工作單元,事務(wù)中的操作要么都發(fā)生,要么都不發(fā)生。

但是,其實(shí),雖然都叫原子性,但是此原子性非彼原子性

在數(shù)據(jù)庫(kù)中的原子性,確實(shí)是一個(gè)不可拆分的工作單元,要么都執(zhí)行,要么都不執(zhí)行。因?yàn)槭聞?wù)可以Commit、也可以Rollback。?

但是在并發(fā)編程中,一個(gè)操作是沒辦法rollback的,并且線程在執(zhí)行過程中也是有可能失敗的,失敗了是沒辦法回滾的,難道就說一個(gè)操作沒辦法保證原子性了么?

所以,在并發(fā)編程中,我們把一個(gè)或者多個(gè)操作在 CPU 執(zhí)行的過程中不被中斷的特性稱為原子性。這里的原子性是通過加鎖的方式來保證的,其實(shí)保證的就是一系列操作,不可以被拆分執(zhí)行,即執(zhí)行過程中,需要互斥排他,不能有其他線程進(jìn)行執(zhí)行。

舉一個(gè)例子來說明一下這兩個(gè)原子性的區(qū)別。

Redis中的Lua腳本到底能不能保證原子性??

網(wǎng)上很多文章,有人說能,有人說不能。要我說,都對(duì),也都不對(duì)。就是因?yàn)橐驗(yàn)榇蠹腋慊炝诉@兩個(gè)原子性的區(qū)別。

我們都知道,當(dāng)我們想要在一個(gè)事務(wù)中執(zhí)行多個(gè)命令的時(shí)候,會(huì)選擇使用Lua腳本。

Redis會(huì)將一個(gè)要執(zhí)行的Lua腳本封裝成一個(gè)單獨(dú)的事務(wù),而腳本執(zhí)行器在執(zhí)行這個(gè)事務(wù)的過程中,

如果有其他客戶端請(qǐng)求的時(shí)候,會(huì)把它暫存起來,等腳本處理完以后,才會(huì)再把被暫存的請(qǐng)求恢復(fù)執(zhí)行。

這樣就可以保證整個(gè)腳本是作為一個(gè)整體執(zhí)行的,中間不會(huì)被其他命令插入,這就是所謂的原子性中的”不可拆分”特性。

但是,如果事務(wù)執(zhí)行過程中命令產(chǎn)生錯(cuò)誤,事務(wù)是不會(huì)回滾的,也不會(huì)影響后續(xù)命令的執(zhí)行。

也就是說,Redis保證以原子方式執(zhí)行Lua腳本,但是不保證腳本中所有操作要么都執(zhí)行或者都會(huì)滾。

那就意味著,Redis中Lua腳本的執(zhí)行,可以保證并發(fā)編程中不可再拆分的這個(gè)原子性,但是沒有保證數(shù)據(jù)庫(kù)ACID中要么都執(zhí)行要么都會(huì)滾的這個(gè)原子性。

責(zé)任編輯:龐桂玉 來源: Hollis
相關(guān)推薦

2021-06-02 16:30:33

PolarDB原子性數(shù)據(jù)庫(kù)

2021-06-03 14:00:35

PolarDB

2019-02-27 09:28:15

Redis服務(wù)器事務(wù)

2021-09-08 08:06:57

Redis原子性數(shù)據(jù)類型

2021-07-03 17:44:34

并發(fā)高并發(fā)原子性

2024-02-27 17:46:25

并發(fā)程序CPU

2013-08-09 09:27:31

2012-05-23 12:49:58

Java自增操作原子性

2011-08-22 14:19:23

linuxUNIXwrite

2021-05-16 17:14:30

線程安全性

2021-01-12 07:39:48

線程線程安全

2021-09-22 12:56:19

編程技能Golang

2025-04-22 08:00:00

2021-05-06 19:20:05

Java內(nèi)存模型

2024-11-21 14:55:37

2022-08-17 07:53:10

Volatile關(guān)鍵字原子性

2024-02-26 08:33:51

并發(fā)編程活躍性安全性

2015-08-31 14:37:12

物聯(lián)網(wǎng)企業(yè)

2023-05-17 08:52:56

Java原子性可見性

2023-11-07 08:04:19

Go并發(fā)程序原子操作
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 日韩靠逼 | 视频三区 | 亚洲视频手机在线 | 日韩aⅴ在线观看 | 91电影院| 在线播放中文字幕 | 美日韩精品 | 国产区在线观看 | 亚洲色图综合网 | 欧美精品一区二区免费 | 偷偷操视频| 国产欧美精品在线 | 一区二区国产在线 | 日韩在线免费视频 | 99一区二区 | 蜜桃视频在线观看免费视频网站www | 999久久久国产精品 欧美成人h版在线观看 | 国产激情视频在线 | 国产超碰人人爽人人做人人爱 | 成人免费看黄网站在线观看 | 久久中文一区二区 | 亚洲精品国产a久久久久久 午夜影院网站 | 亚洲黄色av网站 | 日本一区二区三区视频在线 | 99精品视频免费观看 | 亚洲精品欧美一区二区三区 | 香蕉二区 | 日韩欧美国产不卡 | 亚洲成人一区二区三区 | 欧美人成在线视频 | 在线看亚洲 | 国产精品久久久久一区二区 | 久久尤物免费一区二区三区 | 亚洲91av| 欧美一级高潮片免费的 | 一级黄在线观看 | 国产小视频在线看 | 激情小说综合网 | 日本午夜在线视频 | 99久久99热这里只有精品 | 日韩图区 |