最近的項目突然有個需要多線程處理的一個需求,大概的場景就是:
業務A:人員1提交一個申請【在數據庫中保存一條 未處理任務提醒-針對管理員1】——管理員1審批【在數據庫中保存一條 審批結果-針對人員1】
業務B:人員2提交一個申請【在數據庫中保存一條 未處理任務提醒-針對管理員2】——管理員2審批【在數據庫中保存一條 審批結果-針對人員2】
.....等等
剛開始要使用線程池我很疑惑,這壓根不是解決併發的啊,這個項目的併發量也不是併發級別的啊,況且,Servlet那邊已經維護了一個線程池,多個人訪問一個業務方法也是不同的任務線程,也沒啥問題啊,在這加個線程池單獨保存待發送的消息,應該是要異步的解決存儲消息的問題,
解決的問題就是:主線程可以將保存消息的任務拋給線程池裏的線程去執行,換句話說就是
一頭驢要到達B地點將玉米倒掉,B地點有一堆大米,
然後需要將B地點的大米用 驢盛玉米的袋子 將B點的大米 裝起來送到C地點,驢不太開心,
然後主人安排了一羣騾子在B地點等候驢卸完玉米 將玉米袋子給騾子,由騾子將B地點的大米裝起來送到C點
驢則不用管了
代碼已上傳github:https://github.com/zhangxuewei1263944101/ThreadPoolDemo.git
測試工具使用的JMeter,直接下載5.2版本的,無需配置環境變量直接運行 bin目錄下的jmeter.bat即可
選擇語言
你也可以在配置文件中進行配置,一勞永逸