程序中的“多線程”
原文 http://blogread.cn/it/article/7354?f=hot1
在一些計算機專業相關的書籍中,大家經常聽說“多線程”這個概念。那么什么是“多線程”?什么時候使用“多線程”?在程序設計中使用“多線程”有什么好處呢?
“單線程”程序
要想理解“多線程”,那么就要先從“單線程”說起。
大家都知道工廠“流水線”作業,里面的工序是一環扣一環的,只有前面的一道工序完成之后,才能夠啟動下一道工序。這其實和“單線程”的原理非常的相似。
在“單線程”里面,程序的功能是順序執行的,只有前面的流程都成功執行之后,后面的流程才能夠被執行到。例如,要實現一個話單文件生成、上傳和刪除的程序,使用“單線程”程序來完成,那么其流程如圖1所示。
圖1 “單線程”程序
“多線程”程序
大家也許注意到了,圖1中的生成文件、上傳文件和刪除文件的流程其實可以獨立開來。也就是說,這三個流程是互不影響的。這樣也就誕生了“多線程”的概念。
“多線程”,顧名思義,就是多個“單線程”,每個線程獨立地完成相關的功能。如圖1所示的程序,如果用“多線程”來實現,那么其流程如圖2所示。
圖2 “多線程”程序
從圖2可以看出,當程序啟動之后,線程1、線程2和線程3是同時運行的。線程1僅用于生成話單文件,線程2僅用于上傳話單文件,線程3僅用于刪除過期的話單文件。這樣一來,任何一個線程執行成功與否對另外兩個線程都沒有影響,真正地實現了程序的“并行”。
“多線程”的優點
“多線程”在大型軟件程序中有著很廣泛的應用,其優點如下:
第一,將原來在一個大流程中實現的功能放到了多個小流程中,程序更加的簡潔和易于閱讀。
第二,將不同的功能放到不同的線程中,提高了程序的執行效率。
第三,“多線程”使得程序的模塊化更強,有利于追蹤程序執行過程和排查問題。
總結
“多線程”和“單線程”分別對應“并行”和“串行”,是軟件開發人員必須要掌握的一種程序設計的方法。設計合理的“多線程”程序不僅邏輯清晰、易于閱讀,而且程序的執行效率高,對于軟件產品效率和質量的提升具有很重要的意義。