java并發(fā)編程學(xué)習(xí)的一些總結(jié)


1.不應(yīng)用線程池的缺點(diǎn)

  • 有些開發(fā)者圖省事贮乳,遇到需要多線程處理的地方,直接new Thread(...).start()塘揣,對(duì)于一般場(chǎng)景是沒問題的宿崭,但如果是在并發(fā)請(qǐng)求很高的情況下,就會(huì)有些隱患:
  • 新建線程的開銷奖蔓。線程雖然比進(jìn)程要輕量許多,但對(duì)于JVM來說厨疙,新建一個(gè)線程的代價(jià)還是挺大的疑务,決不同于新建一個(gè)對(duì)象
  • 資源消耗量。沒有一個(gè)池來限制線程的數(shù)量知允,會(huì)導(dǎo)致線程的數(shù)量直接取決于應(yīng)用的并發(fā)量温鸽,這樣有潛在的線程數(shù)據(jù)巨大的可能,那么資源消耗量將是巨大的
  • 穩(wěn)定性涤垫。當(dāng)線程數(shù)量超過系統(tǒng)資源所能承受的程度,穩(wěn)定性就會(huì)成問題

2.制定執(zhí)行策略

  • 在每個(gè)需要多線程處理的地方切蟋,不管并發(fā)量有多大榆芦,需要考慮線程的執(zhí)行策略
  • 任務(wù)以什么順序執(zhí)行
  • 可以有多少個(gè)任務(wù)并發(fā)執(zhí)行
  • 可以有多少個(gè)任務(wù)進(jìn)入等待執(zhí)行隊(duì)列
  • 系統(tǒng)過載的時(shí)候,應(yīng)該放棄哪些任務(wù)镰惦?如何通知到應(yīng)用程序犬绒?
  • 一個(gè)任務(wù)的執(zhí)行前后應(yīng)該做什么處理

3.線程池的類型

  • 不管是通過Executors創(chuàng)建線程池,還是通過Spring來管理茵瘾,都得清楚知道有哪幾種線程池:
    • FixedThreadPool:定長(zhǎng)線程池咐鹤,提交任務(wù)時(shí)創(chuàng)建線程,直到池的最大容量祈惶,如果有線程非預(yù)期結(jié)束,會(huì)補(bǔ)充新線程
    • CachedThreadPool:可變線程池凡涩,它猶如一個(gè)彈簧,如果沒有任務(wù)需求時(shí)力麸,它回收空閑線程育韩,如果需求增加,則按需增加線程筋讨,不對(duì)池的大小做限制
    • SingleThreadExecutor:?jiǎn)尉€程版仔。處理不過來的任務(wù)會(huì)進(jìn)入FIFO隊(duì)列等待執(zhí)行
    • SecheduledThreadPool:周期性線程池。支持執(zhí)行周期性線程任務(wù)
  • 其實(shí)蛮粮,這些不同類型的線程池都是通過構(gòu)建一個(gè)ThreadPoolExecutor來完成的然想,所不同的是corePoolSize,maximumPoolSize,keepAliveTime,unit,workQueue,threadFactory這么幾個(gè)參數(shù)。具體可以參見JDK DOC变泄。

4.線程池飽和策略

  • 由以上線程池類型可知,除了CachedThreadPool其他線程池都有飽和的可能屏富,當(dāng)飽和以后就需要相應(yīng)的策略處理請(qǐng)求線程的任務(wù)蛙卤,比如,達(dá)到上限時(shí)通過ThreadPoolExecutor.setRejectedExecutionHandler方法設(shè)置一個(gè)拒絕任務(wù)的策略神年,JDK提供了AbortPolicy行嗤、CallerRunsPolicy、DiscardPolicy栅屏、DiscardOldestPolicy幾種策略,具體差異可見JDK DOC

5.線程無依賴性

  • 多線程任務(wù)設(shè)計(jì)上盡量使得各任務(wù)是獨(dú)立無依賴的占婉,所謂依賴性可兩個(gè)方面:
    • 線程之間的依賴性甫恩。如果線程有依賴可能會(huì)造成死鎖或饑餓
    • 調(diào)用者與線程的依賴性。調(diào)用者得監(jiān)視線程的完成情況奖慌,影響可并發(fā)量
      當(dāng)然松靡,在有些業(yè)務(wù)里確實(shí)需要一定的依賴性,比如調(diào)用者需要得到線程完成后結(jié)果岛马,傳統(tǒng)的Thread是不便完成的屠列,因?yàn)閞un方法無返回值,只能通過一些共享的變量來傳遞結(jié)果夏志,但在Executor框架里可以通過Future和Callable實(shí)現(xiàn)需要有返回值的任務(wù)苛让,當(dāng)然線程的異步性導(dǎo)致需要有相應(yīng)機(jī)制來保證調(diào)用者能等待任務(wù)完成。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末瘦材,一起剝皮案震驚了整個(gè)濱河市仿畸,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌宣蠕,老刑警劉巖甥捺,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異镰禾,居然都是意外死亡唱逢,警方通過查閱死者的電腦和手機(jī)屋休,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門劫樟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人奶陈,你說我怎么就攤上這事附较。” “怎么了拒课?”我有些...
    開封第一講書人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵早像,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我扎酷,道長(zhǎng)法挨,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任窃植,我火速辦了婚禮荐糜,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘暴氏。我一直安慰自己,他們只是感情好关带,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開白布宋雏。 她就那樣靜靜地躺著,像睡著了一般磨总。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上娶牌,一...
    開封第一講書人閱讀 51,688評(píng)論 1 305
  • 那天邻薯,我揣著相機(jī)與錄音乘凸,去河邊找鬼。 笑死营勤,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的寿羞。 我是一名探鬼主播赂蠢,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼玖院!你這毒婦竟也來了第岖?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤郊酒,失蹤者是張志新(化名)和其女友劉穎键袱,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體褐健,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡比藻,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了纽匙。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拍谐。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖践瓷,靈堂內(nèi)的尸體忽然破棺而出亡蓉,到底是詐尸還是另有隱情,我是刑警寧澤淋肾,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布爸邢,位于F島的核電站,受9級(jí)特大地震影響碌尔,放射性物質(zhì)發(fā)生泄漏券敌。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一颈走、第九天 我趴在偏房一處隱蔽的房頂上張望咱士。 院中可真熱鬧,春花似錦序厉、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)媒咳。三九已至种远,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間坠敷,已是汗流浹背膝迎。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留芒涡,地道東北人掂恕。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓弛槐,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親乎串。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355

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