亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

java 多線程死鎖詳解及簡(jiǎn)單實(shí)例

 更新時(shí)間:2017年01月18日 15:07:45   投稿:lqh  
這篇文章主要介紹了java 多線程死鎖詳解及簡(jiǎn)單實(shí)例的相關(guān)資料,需要的朋友可以參考下

java 多線程死鎖

  相信有過多線程編程經(jīng)驗(yàn)的朋友,都吃過死鎖的苦。除非你不使用多線程,否則死鎖的可能性會(huì)一直存在。為什么會(huì)出現(xiàn)死鎖呢?我想原因主要有下面幾個(gè)方面:

    (1)個(gè)人使用鎖的經(jīng)驗(yàn)差異
    (2)模塊使用鎖的差異
    (3)版本之間的差異
    (4)分支之間的差異
    (5)修改代碼和重構(gòu)代碼帶來的差異

    不管什么原因,死鎖的危機(jī)都是存在的。那么,通常出現(xiàn)的死鎖都有哪些呢?我們可以一個(gè)一個(gè)看過來,

    (1)忘記釋放鎖

void data_process() 
{ 
  EnterCriticalSection(); 
 
  if(/* error happens */) 
    return; 
 
  LeaveCriticalSection(); 
} 

    (2)單線程重復(fù)申請(qǐng)鎖

void sub_func() 
{ 
  EnterCriticalSection(); 
  do_something(); 
  LeaveCriticalSection(); 
} 
 
void data_process() 
{ 
  EnterCriticalSection(); 
  sub_func(); 
  LeaveCriticalSection(); 
} 

    (3)雙線程多鎖申請(qǐng)

void data_process1() 
{ 
  EnterCriticalSection(&cs1); 
  EnterCriticalSection(&cs2); 
  do_something1(); 
  LeaveCriticalSection(&cs2); 
  LeaveCriticalSection(&cs1); 
} 
 
void data_process2() 
{ 
  EnterCriticalSection(&cs2); 
  EnterCriticalSection(&cs1); 
  do_something2(); 
  LeaveCriticalSection(&cs1); 
  LeaveCriticalSection(&cs2); 
} 

    (4)環(huán)形鎖申請(qǐng)

/* 
*       A  - B 
*       |   | 
*       C  - D 
*/ 

    假設(shè)有A、B、C、D四個(gè)人在一起吃飯,每個(gè)人左右各有一只筷子。所以,這其中要是有一個(gè)人想吃飯,他必須首先拿起左邊的筷子,再拿起右邊的筷子?,F(xiàn)在,我們讓所有的人同時(shí)開始吃飯。那么就很有可能出現(xiàn)這種情況。每個(gè)人都拿起了左邊的筷子,或者每個(gè)人都拿起了右邊的筷子,為了吃飯,他們現(xiàn)在都在等另外一只筷子。此時(shí)每個(gè)人都想吃飯,同時(shí)每個(gè)人都不想放棄自己已經(jīng)得到的一那只筷子。所以,事實(shí)上大家都吃不了飯。

總結(jié):

    (1)死鎖的危險(xiǎn)始終存在,但是我們應(yīng)該盡量減少這種危害存在的范圍
    (2)解決死鎖花費(fèi)的代價(jià)是異常高昂的
    (3)最好的死鎖處理方法就是在編寫程序的時(shí)候盡可能檢測(cè)到死鎖
    (4)多線程是一把雙刃劍,有了效率的提高當(dāng)然就有死鎖的危險(xiǎn)
    (5)某些程序的死鎖是可以容忍的,大不了重啟機(jī)器,但是有些程序不行

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • java中Object類4種方法詳細(xì)介紹

    java中Object類4種方法詳細(xì)介紹

    大家好,本篇文章主要講的是java中Object類4種方法詳細(xì)介紹,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • Spring 注解編程模型相關(guān)知識(shí)詳解

    Spring 注解編程模型相關(guān)知識(shí)詳解

    這篇文章主要介紹了Spring 注解編程模型相關(guān)知識(shí)詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • Spring七大組件是哪些以及作用

    Spring七大組件是哪些以及作用

    這篇文章主要介紹了Spring七大組件是哪些以及作用,幫助剛接觸spring的朋友更快理解,如果有說的不對(duì)的地方還請(qǐng)指正,需要的朋友可以參考下
    2023-03-03
  • Java Validation Api實(shí)現(xiàn)原理解析

    Java Validation Api實(shí)現(xiàn)原理解析

    這篇文章主要介紹了Java Validation Api實(shí)現(xiàn)原理解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Java static關(guān)鍵字詳細(xì)介紹與用法總結(jié)

    Java static關(guān)鍵字詳細(xì)介紹與用法總結(jié)

    這篇文章主要介紹了Java中static關(guān)鍵字的作用和用法詳細(xì)介紹,主要講了靜態(tài)方法、靜態(tài)變量、靜態(tài)類、static和final一塊用等內(nèi)容。需要的朋友可以參考下
    2017-04-04
  • mybatis-plus 實(shí)現(xiàn)分頁查詢的示例代碼

    mybatis-plus 實(shí)現(xiàn)分頁查詢的示例代碼

    本文介紹了在MyBatis-Plus中實(shí)現(xiàn)分頁查詢,包括引入依賴、配置分頁插件、使用分頁查詢以及在控制器中調(diào)用分頁查詢的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-11-11
  • SpringCloud hystrix服務(wù)降級(jí)概念介紹

    SpringCloud hystrix服務(wù)降級(jí)概念介紹

    什么是服務(wù)降級(jí)?當(dāng)服務(wù)器壓力劇增的情況下,根據(jù)實(shí)際業(yè)務(wù)情況及流量,對(duì)一些服務(wù)和頁面有策略的不處理或換種簡(jiǎn)單的方式處理,從而釋放服務(wù)器資源以保證核心交易正常運(yùn)作或高效運(yùn)作
    2022-09-09
  • java算法入門之有效的括號(hào)刪除有序數(shù)組中的重復(fù)項(xiàng)實(shí)現(xiàn)strStr

    java算法入門之有效的括號(hào)刪除有序數(shù)組中的重復(fù)項(xiàng)實(shí)現(xiàn)strStr

    大家好,我是哪吒,一個(gè)熱愛編碼的Java工程師,本著"欲速則不達(dá),欲達(dá)則欲速"的學(xué)習(xí)態(tài)度,在程序猿這條不歸路上不斷成長(zhǎng),所謂成長(zhǎng),不過是用時(shí)間慢慢擦亮你的眼睛,少時(shí)看重的,年長(zhǎng)后卻視若鴻毛,少時(shí)看輕的,年長(zhǎng)后卻視若泰山,成長(zhǎng)之路,亦是漸漸放下執(zhí)念,內(nèi)心歸于平靜的旅程
    2021-08-08
  • jmeter的時(shí)間戳函數(shù)使用

    jmeter的時(shí)間戳函數(shù)使用

    在使用jmeter做接口測(cè)試的時(shí)候,經(jīng)常會(huì)要用到日期這種函數(shù),本文主要介紹了jmeter的時(shí)間戳函數(shù)使用,感興趣的可以了解一下
    2021-11-11
  • JAVA基于數(shù)組實(shí)現(xiàn)的商品信息查詢功能示例

    JAVA基于數(shù)組實(shí)現(xiàn)的商品信息查詢功能示例

    這篇文章主要介紹了JAVA基于數(shù)組實(shí)現(xiàn)的商品信息查詢功能,結(jié)合實(shí)例形式詳細(xì)分析了java使用數(shù)組存儲(chǔ)數(shù)據(jù)實(shí)現(xiàn)的商品信息查詢功能相關(guān)操作技巧,需要的朋友可以參考下
    2019-11-11

最新評(píng)論