生产上第一使用线程池后的总结与反思
生產(chǎn)上與 esb 交互時,因為系統(tǒng)后臺造數(shù)使得 esb 接收響應(yīng)報文超時。先將造數(shù)邏輯修改成線程池異步調(diào)用。第一次使用,記錄一下學習的歷程。
【1】Java向多線程中傳遞參數(shù)的三種方法
https://blog.csdn.net/saycheesenn/article/details/52956331
? ?一、通過構(gòu)造方法傳遞數(shù)據(jù)
? ?二、通過變量和方法傳遞數(shù)據(jù)
? ?三、通過回調(diào)函數(shù)傳遞數(shù)據(jù)
【2】線程池不建議使用Executors去創(chuàng)建,而是通過ThreadPoolExecutor方式的原因
https://blog.csdn.net/qq_31615049/article/details/80756781
創(chuàng)建線程的幾種方式及優(yōu)劣
new Thread 方式
優(yōu)勢:顯而易見的線程創(chuàng)建方式
缺點:每次都要new對象,當有大量請求時,數(shù)不清new了多少個對象了,如果不及時關(guān)閉會導致內(nèi)存溢出,因此還要考慮線程管理等問題。
Executors工廠創(chuàng)建線程池
newCachedThreadPool:創(chuàng)建一個可緩存線程池
優(yōu)點:很靈活,彈性的線程池線程管理,用多少線程給多大的線程池,不用后及時回收,用則新建
缺點:一旦線程無限增長,會導致內(nèi)存溢出。
newFixedThreadPool :創(chuàng)建一個固定大小線程池
優(yōu)點:創(chuàng)建一個固定大小線程池,超出的線程會在隊列中等待。
缺點:不支持自定義拒絕策略,大小固定,難以擴展
newScheduledThreadPool :
優(yōu)點:創(chuàng)建一個固定大小線程池,可以定時或周期性的執(zhí)行任務(wù)。
缺點:任務(wù)是單線程方式執(zhí)行,一旦一個任務(wù)失敗其他任務(wù)也受影響
newSingleThreadExecutor :
優(yōu)點:創(chuàng)建一個單線程的線程池,保證線程的順序執(zhí)行
缺點:不適合并發(fā)。。不懂為什么這種操作要用線程池。。為什么不直接用隊列
?
以上四種創(chuàng)建方式的統(tǒng)一缺點:不支持自定義拒絕策略。
?
通過ThreadPoolExecutor創(chuàng)建線程池
優(yōu)點:集上述優(yōu)點于一身
缺點:沒發(fā)現(xiàn)缺點,因為上述線程池的底層就是通過它來創(chuàng)建的
?
【3】ThreadPoolExecutor參數(shù)解釋
https://blog.csdn.net/a837199685/article/details/50619311
【4】性能測試
通過SoapUI進行壓力測試
【5】什么是同步,什么是異步
【6】自定義拒絕策略
轉(zhuǎn)載于:https://www.cnblogs.com/smallwangmusk/p/10638383.html
總結(jié)
以上是生活随笔為你收集整理的生产上第一使用线程池后的总结与反思的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows 下面 redis 发布为
- 下一篇: React Router 黑笔记?