為什么要使用多線程?


Java程序天生就是多線程程序,在Java程序中執行一個main()方法其實是main線程和多個其他線程的同時運行。如下面所示:

import java.lang.management.ManagementFactory;
import java.lang.management.ThreadInfo;
import java.lang.management.ThreadMXBean;

public class readExcel {
    public static void main(String[] args) {
        ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean();
        ThreadInfo[] threadInfos = threadMXBean.dumpAllThreads(false, false);
        for (ThreadInfo threadInfo :threadInfos){
            System.out.println("[" + threadInfo.getThreadId() + "]" + threadInfo.getThreadName());
        }
    }
}
輸出如下所示:
[6]Monitor Ctrl-Break
[5]Attach Listener
[4]Signal Dispatcher    //分發處理發送給JVM信號的線程
[3]Finalizer        //調用finalize方法的線程        
[2]Reference Handler   //清除Reference的線程
[1]main                  //main線程,用戶程序入口

 

為什么要使用多線程?

(1)更多的處理器核心

一個單線程程序在運行時只能使用一個處理器核心,那么再多的處理器核心加入也無法顯著該程序的執行效率。相反,如果該程序使用多線程技術,將計算邏輯分配到多個處理器核心上,就會顯著減少程序的處理時間,並且隨着更多處理器核心的加入而變得更有效率。

(2)更快的響應時間

可以使用多線程技術,將數據一致性不強的操作派發給其他線程處理(也可以使用消息隊列)。這樣做的好處是響應用戶請求的線程能夠盡可能快地處理完成,縮短響應時間,提升用戶體驗。

例如:用戶提交一次訂單,后續會等待一系列操作全部完成才能看到訂購成功的結果。對於其中的一些業務操作,可以考慮交給其他線程處理,從而使其更快地完成。

(3)更好的編程模型

Java為多線程編程提供了良好、考究並且一致的編程模型,當開發人員為所遇到的問題建立合適的模型之后,稍作修改就能夠方便地映射到Java提供的多線程編程模型上。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM