麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 編程 > Java > 正文

java 實(shí)現(xiàn)線程同步的方式有哪些

2019-11-26 16:17:22
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
什么是線程同步?
當(dāng)使用多個(gè)線程來(lái)訪問(wèn)同一個(gè)數(shù)據(jù)時(shí),非常容易出現(xiàn)線程安全問(wèn)題(比如多個(gè)線程都在操作同一數(shù)據(jù)導(dǎo)致數(shù)據(jù)不一致),所以我們用同步機(jī)制來(lái)解決這些問(wèn)題。

實(shí)現(xiàn)同步機(jī)制有兩個(gè)方法
1。同步代碼塊:
synchronized(同一個(gè)數(shù)據(jù)){} 同一個(gè)數(shù)據(jù):就是N條線程同時(shí)訪問(wèn)一個(gè)數(shù)據(jù)。
2。
同步方法:
public synchronized 數(shù)據(jù)返回類(lèi)型 方法名(){}
就是使用 synchronized 來(lái)修飾某個(gè)方法,則該方法稱(chēng)為同步方法。對(duì)于同步方法而言,無(wú)需顯示指定同步監(jiān)視器,同步方法的同步監(jiān)視器是 this 也就是該對(duì)象的本身(這里指的對(duì)象本身有點(diǎn)含糊,其實(shí)就是調(diào)用該同步方法的對(duì)象)通過(guò)使用同步方法,可非常方便的將某類(lèi)變成線程安全的類(lèi),具有如下特征:
1,該類(lèi)的對(duì)象可以被多個(gè)線程安全的訪問(wèn)。
2,每個(gè)線程調(diào)用該對(duì)象的任意方法之后,都將得到正確的結(jié)果。
3,每個(gè)線程調(diào)用該對(duì)象的任意方法之后,該對(duì)象狀態(tài)依然保持合理狀態(tài)。
注:synchronized關(guān)鍵字可以修飾方法,也可以修飾代碼塊,但不能修飾構(gòu)造器,屬性等。
實(shí)現(xiàn)同步機(jī)制注意以下幾點(diǎn): 安全性高,性能低,在多線程用。性能高,安全性低,在單線程用。
1,不要對(duì)線程安全類(lèi)的所有方法都進(jìn)行同步,只對(duì)那些會(huì)改變共享資源方法的進(jìn)行同步。
2,如果可變類(lèi)有兩種運(yùn)行環(huán)境,當(dāng)線程環(huán)境和多線程環(huán)境則應(yīng)該為該可變類(lèi)提供兩種版本:線程安全版本和線程不安全版本(沒(méi)有同步方法和同步塊)。在單線程中環(huán)境中,使用線程不安全版本以保證性能,在多線程中使用線程安全版本.

線程通訊
為什么要使用線程通訊?
當(dāng)使用synchronized 來(lái)修飾某個(gè)共享資源時(shí)(分同步代碼塊和同步方法兩種情況),當(dāng)某個(gè)線程獲得共享資源的鎖后就可以執(zhí)行相應(yīng)的代碼段,直到該線程運(yùn)行完該代碼段后才釋放對(duì)該 共享資源的鎖,讓其他線程有機(jī)會(huì)執(zhí)行對(duì)該共享資源的修改。當(dāng)某個(gè)線程占有某個(gè)共享資源的鎖時(shí),如果另外一個(gè)線程也想獲得這把鎖運(yùn)行就需要使用wait() 和notify()/notifyAll()方法來(lái)進(jìn)行線程通訊了。
Java.lang.object 里的三個(gè)方法wait() notify() notifyAll()
wait方法導(dǎo)致當(dāng)前線程等待,直到其他線程調(diào)用同步監(jiān)視器的notify方法或notifyAll方法來(lái)喚醒該線程。
wait(mills)方法
都是等待指定時(shí)間后自動(dòng)蘇醒,調(diào)用wait方法的當(dāng)前線程會(huì)釋放該同步監(jiān)視器的鎖定,可以不用notify或notifyAll方法把它喚醒。
notify()
喚醒在同步監(jiān)視器上等待的單個(gè)線程,如果所有線程都在同步監(jiān)視器上等待,則會(huì)選擇喚醒其中一個(gè)線程,選擇是任意性的,只有當(dāng)前線程放棄對(duì)該同步監(jiān)視器的鎖定后,也就是使用wait方法后,才可以執(zhí)行被喚醒的線程。
notifyAll()方法
喚醒在同步監(jiān)視器上等待的所有的線程。只用當(dāng)前線程放棄對(duì)該同步監(jiān)視器的鎖定后,才可以執(zhí)行被喚醒的線程
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 高潮激情aaaaa免费看 | 日韩视频一区二区三区在线观看 | 欧美成人免费小视频 | hdhdhd79xxxxх | 九一成人 | 久久精品色 | 91,视频免费看| 精品一区二区三区网站 | 亚洲第一色婷婷 | 国产一精品久久99无吗一高潮 | 日本高清无遮挡 | 在线成人一区 | 制服丝袜成人动漫 | 午夜精品久久久久久毛片 | 毛片免费在线观看视频 | 亚洲最新无码中文字幕久久 | 一级黄色欧美 | a黄色片 | 成人福利在线 | 国产精品爆操 | 国产免费中文字幕 | 精品亚洲免费 | 日本aaaa片毛片免费观蜜桃 | 五月婷婷第四色 | 亚洲欧美国产高清 | 涩涩99| 色欲香天天天综合网站 | 在线成人免费观看视频 | 久久免费观看一级毛片 | 国内精品久久久久久2021浪潮 | 久久吊 | 欧美另类综合 | 午夜小影院 | 色播av在线| 国产精品一区二区x88av | 欧美黑人一级 | 日韩黄色av网站 | 欧美成人精品一区二区男人小说 | av中文在线观看 | 爱福利视频网 | 欧美成人性生活片 |