在粵嵌開始學習一門編程語言時,老師們都會強調運行程序的入口是主函數,程序會從主函數的句代碼開始執行。但在課程的后面,一般會涉及到多線程的教學。以Java培訓班的學生舉例,一開始當學生遇到調用函數的代碼時程序會去執行對應函數的代碼,執行結束后回到主程序繼續執行下一句代碼,當主函數的代碼都執行完畢后,程序就會結束并退出。也就是說在一般情況下,程序只會執行一個流程,就算代碼中有多個事件需要進行處理,程序也會按照代碼的排列順序按序執行。
若以我們的身體來做比喻的話,程序就像是我們的大腦,假設我們要完成一個拍手的動作,那么就需要雙手同時做出動作向一個位置拍擊,但如果是按照上述的執行方式的話,那就是先把一只手移到目標位置,完成后再把另一只手移過去,這樣的視覺效果既滑稽,又拍不響。所以在編程時,我們也會需要程序去同時執行多個函數,實現流暢的運行效果以及豐富的功能,所以就會使用Java多線程編程。
另外,線程在Unix系統下,通常被稱為輕量級的進程,線程雖然不是進程,但卻可以看作是Unix進程的表親,同一進程中的多條線程將共享該進程中的全部系統資源,如虛擬地址空間,文件描述符和信號處理等等。但同一進程中的多個線程有各自的調用棧,自己的寄存器環境,自己的線程本地存儲。一個進程可以有很多線程,每條線程并行執行不同的任務。
以上就是Java培訓班老師為大家解釋為什么要使用多線程編程的原因。粵嵌告誡大家的是,不管你學的是什么編程語言,都是從易到難的,一開始也許只是單線程,但在后面遇到更難的部分,例如多線程,一定要深入去理解,而不只是照著例子去編寫代碼。只有帶著腦子去學,才能真正掌握所學的技能。