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