粵嵌java課程關于并發(fā)編程的思考——為什么需要并發(fā)?什么是并發(fā)?并發(fā)其實是一種解耦合的策略,它幫助我們把做目標和什么時候時機分開。這樣做可以明顯改進應用程序的吞吐量,獲得更多的CPU調度時間和結構(程序有多個部分在協(xié)同工作)。
關于并發(fā)的誤解和正解分別有哪些:
常見的對并發(fā)編程的誤解有以下這些:
1、并發(fā)總能改進性能(并發(fā)在CPU有很多空閑時間時能明顯改進程序的性能,但當線程數(shù)量較多的時候,線程間頻繁的調度切換反而會讓系統(tǒng)的性能下降);
2、編寫并發(fā)程序無需修改原有的設計(目的與時機的解耦往往會對系統(tǒng)結構產(chǎn)生巨大的影響);
3、在使用Web或EJB容器時不用關注并發(fā)問題(只有了解了容器在做什么,才能更好的使用容器)。
下面的這些說法才是對并發(fā)客觀的認識:
1、編寫并發(fā)程序會在代碼上增加額外的開銷;
2、正確的并發(fā)是非常復雜的,即使對于很簡單的問題;
3、并發(fā)中的缺陷因為不易重現(xiàn)也不容易被發(fā)現(xiàn);
4、并發(fā)往往需要對設計策略從根本上進行修改。
Java并發(fā)編程的原則和技巧
單一職責原則:分離并發(fā)相關代碼和其他代碼(并發(fā)相關代碼有自己的開發(fā)、修改和調優(yōu)生命周期)。
限制數(shù)據(jù)作用域:兩個線程修改共享對象的同一字段時可能會相互干擾,導致不可預期的行為,解決方案之一是構造臨界區(qū),但是必須限制臨界區(qū)的數(shù)量。
使用數(shù)據(jù)副本:數(shù)據(jù)副本是避免共享數(shù)據(jù)的好方法,復制出來的對象只是以只讀的方式對待。線程應盡可能獨立:讓線程存在于自己的世界中,不與其他線程共享數(shù)據(jù)。
想學習Java課程,請點擊在線咨詢或者親臨粵嵌Java培訓班體驗課程。粵嵌12年IT從業(yè)經(jīng)歷,幫助你實現(xiàn)Java高薪夢。