Java 線程同步

1.Synchronized

Java提供關(guān)鍵字synchronized來防止資源沖突康栈。當(dāng)任務(wù)要執(zhí)行被synchronized關(guān)鍵字保護(hù)的代碼片段時(shí)棉胀,它將檢查鎖是否可用理张,然后獲取鎖系瓢,執(zhí)行代碼,釋放鎖揖闸。

如果一個(gè)任務(wù)處于一個(gè)對(duì)標(biāo)記為synchronized的方法的調(diào)用中揍堕,那么在這個(gè)線程從該方法返回之前,其他所有要調(diào)用類中標(biāo)記為synchronized方法的線程都會(huì)被阻塞汤纸。

2.Lock

Lock對(duì)象必須被顯式的創(chuàng)建鎖定和釋放

Lock lock = new ReentrantLock();

lock.unlock();

3.volatile

a:volatile關(guān)鍵字為域變量的訪問提供了一種免鎖機(jī)制衩茸,

b:使用volatile修飾域相當(dāng)于告訴虛擬機(jī)該域可能會(huì)被其他線程更新,

c:因此每次使用該域就要重新計(jì)算贮泞,而不是使用寄存器中的值

d:volatile不會(huì)提供任何原子操作楞慈,它也不能用來修飾final類型的變量

5:使用局部變量實(shí)現(xiàn)線程同步

如果使用ThreadLocal管理變量,則每一個(gè)使用該變量的線程都獲得該變量的副本啃擦,

副本之間相互獨(dú)立囊蓝,這樣每一個(gè)線程都可以隨意修改自己的變量副本,而不會(huì)對(duì)其他線程產(chǎn)生影響议惰。

ThreadLocal() : 創(chuàng)建一個(gè)線程本地變量

get() : 返回此線程局部變量的當(dāng)前線程副本中的值

initialValue() : 返回此線程局部變量的當(dāng)前線程的"初始值"

set(T value) : 將此線程局部變量的當(dāng)前線程副本中的值設(shè)置為value


6.使用原子變量實(shí)現(xiàn)線程同步

原子操作就是指將讀取變量值慎颗、修改變量值、保存變量值看成一個(gè)整體來操作

即-這幾種行為要么同時(shí)完成言询,要么都不完成。

在java的util.concurrent.atomic包中提供了創(chuàng)建了原子類型變量的工具類傲宜,

使用該類可以簡(jiǎn)化線程同步运杭。

其中AtomicInteger表可以用原子方式更新int的值,可用在應(yīng)用程序中(如以原子方式增加的計(jì)數(shù)器)函卒,

但不能用于替換Integer辆憔;可擴(kuò)展Number,允許那些處理機(jī)遇數(shù)字類的工具和實(shí)用工具進(jìn)行統(tǒng)一訪問报嵌。

AtomicInteger類常用方法:

AtomicInteger(int initialValue) : 創(chuàng)建具有給定初始值的新的AtomicInteger

addAddGet(int dalta) : 以原子方式將給定值與當(dāng)前值相加

get() : 獲取當(dāng)前值

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末虱咧,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子锚国,更是在濱河造成了極大的恐慌腕巡,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,607評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件血筑,死亡現(xiàn)場(chǎng)離奇詭異绘沉,居然都是意外死亡煎楣,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門车伞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來择懂,“玉大人,你說我怎么就攤上這事另玖±铮” “怎么了?”我有些...
    開封第一講書人閱讀 164,960評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵谦去,是天一觀的道長(zhǎng)赂弓。 經(jīng)常有香客問我,道長(zhǎng)哪轿,這世上最難降的妖魔是什么盈魁? 我笑而不...
    開封第一講書人閱讀 58,750評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮窃诉,結(jié)果婚禮上杨耙,老公的妹妹穿的比我還像新娘。我一直安慰自己飘痛,他們只是感情好珊膜,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,764評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著宣脉,像睡著了一般车柠。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上塑猖,一...
    開封第一講書人閱讀 51,604評(píng)論 1 305
  • 那天竹祷,我揣著相機(jī)與錄音,去河邊找鬼羊苟。 笑死塑陵,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蜡励。 我是一名探鬼主播令花,決...
    沈念sama閱讀 40,347評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼凉倚!你這毒婦竟也來了兼都?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,253評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤稽寒,失蹤者是張志新(化名)和其女友劉穎扮碧,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體瓦胎,經(jīng)...
    沈念sama閱讀 45,702評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡芬萍,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,893評(píng)論 3 336
  • 正文 我和宋清朗相戀三年尤揣,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片柬祠。...
    茶點(diǎn)故事閱讀 40,015評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡北戏,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出漫蛔,到底是詐尸還是另有隱情嗜愈,我是刑警寧澤,帶...
    沈念sama閱讀 35,734評(píng)論 5 346
  • 正文 年R本政府宣布莽龟,位于F島的核電站蠕嫁,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏毯盈。R本人自食惡果不足惜剃毒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,352評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望搂赋。 院中可真熱鬧赘阀,春花似錦、人聲如沸脑奠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽宋欺。三九已至轰豆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間齿诞,已是汗流浹背酸休。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留掌挚,地道東北人雨席。 一個(gè)月前我還...
    沈念sama閱讀 48,216評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像吠式,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子抽米,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,969評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 從三月份找實(shí)習(xí)到現(xiàn)在特占,面了一些公司,掛了不少云茸,但最終還是拿到小米是目、百度、阿里标捺、京東懊纳、新浪揉抵、CVTE、樂視家的研發(fā)崗...
    時(shí)芥藍(lán)閱讀 42,253評(píng)論 11 349
  • Java8張圖 11嗤疯、字符串不變性 12冤今、equals()方法、hashCode()方法的區(qū)別 13茂缚、...
    Miley_MOJIE閱讀 3,707評(píng)論 0 11
  • Java-Review-Note——4.多線程 標(biāo)簽: JavaStudy PS:本來是分開三篇的戏罢,后來想想還是整...
    coder_pig閱讀 1,653評(píng)論 2 17
  • 詩一首——游玉門關(guān)和漢長(zhǎng)城 詩一首——游玉門關(guān)和漢長(zhǎng)城 6月13日游玉門關(guān)和漢長(zhǎng)城感慨萬千特賦詩一首以抒情懷。 長(zhǎng)...
    琳琳爹閱讀 659評(píng)論 0 1
  • 我所有的工作都是在58同城上投簡(jiǎn)歷脚囊、去應(yīng)聘而找到的龟糕,而所有的職位都是奔著淘寶系去的。應(yīng)聘的時(shí)候悔耘,也是穿得很隨便讲岁,傻...
    糾偏人閱讀 208評(píng)論 5 2