在乙個高併發的**中,多執行緒是必不可少的。下面先說一下多執行緒在程式中的作用。
[b]1、提高前端請求的響應速度。[/b]當我們執行乙個比較耗時的方法時,http請求得不到響應甚至會超時,這時如果業務上允許資料的延遲,我們可以使用多執行緒來進行處理比較耗時的方法。這樣前端傳送了請求,後端令開啟了乙個執行緒去處理任務,就不會阻塞主線程了。
[b]2、減清伺服器的壓力。[/b]包括我們的web容器,如tomcat、jetty等,還有資料庫伺服器等。因為我們使用了多執行緒,並且執行緒池大小有限制,如30,那麼同時請求資料庫的鏈結就限制為30了,也就是說能夠同時執行方法的執行緒只有30個,其餘的任務都放在我們執行緒的任務佇列了,這樣資料庫就不會被突然上來的請求給壓垮了。當然對於緩解資料庫壓力來說,更建議使用訊息佇列,使用訊息佇列我們可以攢資料進行批量提交,而僅僅使用多執行緒,則不好實現攢資料的過程。
[b]3、提高處理能力,增加效能,充分利用伺服器資源。[/b]如我們要將三個表裡的資料載入到快取,最簡單的我們乙個表開啟乙個執行緒,共用三個執行緒去載入快取則比用乙個執行緒去挨著遍歷三個表的資料高效的多。
[size=large][color=blue][b]使用場景總結[/b][/color][/size]
[size=medium][color=red][b]1.使用三個執行緒同時對三張表進行拷貝資料,等三個執行緒拷貝成功後再啟動乙個執行緒進行三張表資料關係的更新操作。[/b][/color][/size]
[size=medium][color=red][b]2.歷史資料的儲存操作可以使用多執行緒進行操作[/b][/color][/size]
[size=medium][color=red][b]3.初始化快取時可以使用執行緒去載入相應的表資料[/b][/color][/size]
[b]總之使用多執行緒就是為了充分利用cpu的資源,提高程式執行效率,當你發現乙個業務邏輯執行效率特別低,耗時特別長,就可以考慮使用多執行緒。[/b]不過cpu執行哪個執行緒的時間和順序是不確定的,即使設定了執行緒的優先順序,因此使用多執行緒的風險也是比較大的,會出現很多預料不到的問題,一定要多熟悉概念,多構造不同的場景去測試才能夠掌握!
java多執行緒應用場景
多執行緒是基於乙個程序的多個執行過程。多執行緒貌似是提高了處理機的處理速度。實際是這樣麼?假設我們要做一萬次for迴圈,有十個執行緒,每個執行緒做1000次。那麼多執行緒會比單執行緒執行的快麼。針對單核cpu來說,單執行緒是最快的。因為多執行緒並不是真正意義上的多個一起執行。而是每個程序都在一定時間...
多執行緒使用場景
newcachedthreadpool 建立乙個可根據需要建立新執行緒的執行緒池,但是在以前構造的執行緒可用時將重用它們。對於執行很多短期非同步任務的程式而言,這些執行緒池通常可提高程式效能。呼叫 execute 將重用以前構造的執行緒 如果執行緒可用 如果現有執行緒沒有可用的,則建立乙個新執行緒並...
Java多執行緒總結
life s a climb,but the view is great.1.1 繼承thread 1.2 實現runnable 1.3 實現callable2.1 五種狀態 建立,就緒,執行,阻塞,死亡 2.2終止執行緒 自然終止 外部干涉 2.3 阻塞 join yield sleep slee...