溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Java并發(fā)編程的原則和技巧是什么

發(fā)布時(shí)間:2022-01-10 09:44:25 來(lái)源:億速云 閱讀:140 作者:iii 欄目:編程語(yǔ)言

本篇內(nèi)容介紹了“Java并發(fā)編程的原則和技巧是什么”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

  為什么需要并發(fā)編程?


  并發(fā)編程幫助我們把做什么和什么時(shí)候做分開(kāi),可以明顯的改進(jìn)應(yīng)用程序的吞吐量和機(jī)構(gòu)。當(dāng)然不僅如此,往往在用到并發(fā)編程的時(shí)候有多重原因。例如業(yè)務(wù)需求、性能優(yōu)化需要、可簡(jiǎn)化任務(wù)調(diào)度、并行程序在多核心CPU有優(yōu)勢(shì)。
  當(dāng)然這期間也會(huì)存在一些注意事項(xiàng),會(huì)對(duì)并發(fā)編程產(chǎn)生一定的誤解,例如并發(fā)并非總能改進(jìn)性能,在發(fā)在CPU有很多空閑時(shí)間的時(shí)候可以明顯改進(jìn)程序的性能,但是線程數(shù)量較多,頻繁的調(diào)度切換反而會(huì)降低系統(tǒng)的性能。
  因此我們應(yīng)該客觀的認(rèn)識(shí)并發(fā)編程。例如編寫(xiě)并發(fā)程序必然會(huì)在代碼上增加額外的開(kāi)銷(xiāo);正確的并發(fā)是非常復(fù)雜的,即使對(duì)于簡(jiǎn)單的問(wèn)題;并發(fā)中的缺陷因?yàn)椴灰字匦乱膊蝗菀妆话l(fā)現(xiàn);并發(fā)往往需要對(duì)設(shè)計(jì)策略從根本上上進(jìn)行修改。


  并發(fā)編程的原則和技巧


  1、單一職責(zé)原則。分離并發(fā)相關(guān)代碼和其他代碼。
  2、限制數(shù)據(jù)作用域。兩個(gè)線程修改共享對(duì)象的同一字段時(shí)可能會(huì)相互干擾,導(dǎo)致不可預(yù)期的行為,解決方案之一是構(gòu)造臨界區(qū),但是必須限制臨界區(qū)的數(shù)量。
  3、使用數(shù)據(jù)副本。數(shù)據(jù)副本是避免共享數(shù)據(jù)的好方法,復(fù)制出來(lái)的對(duì)象只是以只讀的方式對(duì)待。
  4、線程應(yīng)盡可能獨(dú)立。讓線程存在于自己的世界中,不與其他線程共享數(shù)據(jù)。

“Java并發(fā)編程的原則和技巧是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI