国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

同步鎖前傳 相關術語索引

2019-11-14 11:32:10
字體:
來源:轉載
供稿:網友

前言

接下來,我想把同步鎖相關的內容梳理梳理。其實不單單是同步鎖,所有的JUC的內容我都想理清楚。因為,時而感覺自己對這塊挺了解,時而又感覺模糊。因此我打算自己梳理一下,同時整理成筆記,一方面是方便自己,另一方面是方便別人。

鎖的相關術語比較多,有些還比較晦澀。很多的時候,我自己都不能準確表達,平時在講的時候也沒有太注意這些。因此接下來內容中出現有些用語不當,表述有偏差的地方,還希望您能慷慨指出。

術語索

原子性

在看原子性之前,我們先看看什么是原子。 1. 原子,記得在化學中提到原子是這么定義的

原子是元素能保持其化學性質的最小單位。 來自 wikipedia

因此我們認為原子是世界上最小的物質單位,具體有不可分割性。 2. 原子操作 由此可見原子操作,是一個不再分的操作。 如,a=0 是一個子原操作。但a++, 不是原子操作,因為它是可以分解成 int t = a + 1; a = t; 兩個操作。 3. 原子性 由此便可引出原子性了,即是 一個操作屬于原子操作的話,那么我們稱它具有原子性

原語

通常把不可斷的過程稱之為原語。

是由若干條指令組成的,用于完成一定功能的一個過程。 PRimitive or atomic action 是由若干個機器指令構成的完成某種特定功能的一段程序,具有不可分割性。即原語的執行必須是連續的,在執行過程中不允許被中斷。——百度百科

可見性

可見性,是指線程之間的可見性,一個線程修改的狀態對另一個線程是可見的。 其實我一直覺得,講清楚這個東西挺難的,但是理解它又挺容易。先做簡單解釋,當然這個并不嚴謹,但可以有個簡單的印象,后續在介紹volatile時,我們再具體來聊這個事。

內存是線程共享,線程A操作變量后,直接更新內存之后,線程B立馬可以看到線程A操作的效果。–這就是可見性。

臨界區

我們把并發進程中與共享變量有關的程序段稱為臨界區。 —— 來自操作系統

可重入

可重入,顧名思義,即是可以遞歸、循環進入。現在這個解釋放在可重入鎖的可重入時,感覺怪怪的。本人語言比較差,感覺自己實在沒法用文字說清,直接上代碼用例子來看看吧。

public synchronized void barfoo() { ... bar(); ... foo(); ...}public synchronized void bar() {}public synchronized void foo() {}

P.S. synchronized具有可重入性。

如果synchronized不具有可重入性的話,我們barfoo()就會出現死鎖,因為barfoo在調用bar時是沒辦法拿取到鎖的。這就是可重入性

再看一段代碼

private Connection connection = null;public synchronized Connection reconnect(final int timesOfRetry) { if(connection == null) try { connection = create(); } catch (Exception e) { reconnect(timesOfRetry + 1); } return connection;}

也就是說能夠讓當前線程(鎖的持有者)多次的獲取鎖操作。

公平性

這個維基沒有,我自己來吧。公平性是對鎖存在情況競爭的情況下,誰先由誰先拿到鎖的策略而言的。假若,在競爭鎖的時候大家都來一起排隊,先到先得,我們認為這種策略是公平的。假若,不是嚴格依照這個次序獲取鎖的情況,我們就稱它是不公平。即是新來的人反倒有更大的機會拿到鎖,這就是不公平的。 在實現上,新來的人,先做一次檢查,如果有當時有鎖資源,就先會給新人。否則進入隊列跟大家一塊排隊*

排他鎖

排他鎖,也叫獨占鎖,顧名思義即是只能有一個線程同時獲取這個鎖。也叫X鎖。

共享鎖

共享鎖,也叫讀鎖,允許多個線程持有這個鎖。稱S鎖。

自旋鎖

自旋旋,是一個不可重入性鎖。

自旋鎖是采用讓當前線程不停地的在循環體內執行實現的,當循環的條件被其他線程改變時才能進入臨界區。——來自ifeve

可重入鎖

可重入鎖,也叫做遞歸鎖,指的是同一線程 外層函數獲得鎖之后 ,內層遞歸函數仍然有獲取該鎖的代碼。


上一篇:P1164 小A點菜

下一篇:P1177 快速排序

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 襄垣县| 凭祥市| 邵阳市| 武胜县| 洪湖市| 安新县| 屯昌县| 尼木县| 宾川县| 香河县| 定结县| 潢川县| 来凤县| 顺平县| 抚顺市| 长垣县| 盘锦市| 东平县| 襄樊市| 黄浦区| 辰溪县| 荆门市| 遂昌县| 鄱阳县| 石台县| 综艺| 丰顺县| 呼伦贝尔市| 平顶山市| 盱眙县| 大埔县| 乌恰县| 达拉特旗| 电白县| 龙口市| 游戏| 平塘县| 苏尼特右旗| 柳河县| 海口市| 禄劝|