更新時間:2022年03月21日14時23分 來源:傳智教育 瀏覽次數(shù):
在日常生活中,很多事情都是可以同時進(jìn)行的。例如一個人可以一邊聽音樂,一邊打掃房間;可以一邊吃飯,一邊看電視。在使用計算機(jī)時,很多任務(wù)也是可以同時進(jìn)行的。例如,可以一邊瀏覽網(wǎng)頁,一邊打印文檔,還可以一邊聊天,一邊復(fù)制文件。
計算機(jī)能夠同時完成多項任務(wù),例如,讓瀏覽器執(zhí)行0.001秒,讓QQ執(zhí)行0.001秒,這就是多線程技術(shù)。計算機(jī)中的中央處理器(Central Processing Unit,CPU)即使是單核也可以同時運行多個任務(wù),因為操作系統(tǒng)執(zhí)行多個任務(wù)時就是讓CPU對多個任務(wù)輪流交替執(zhí)行。Java是支持多線程的語言之一,它對多線程編程提供了內(nèi)置的支持,可以使程序同時執(zhí)行多個執(zhí)行片段。
每個運行的程序都是一個進(jìn)程,在一個進(jìn)程中還可以有多個執(zhí)行單元同時運行,這些執(zhí)行單元可以看作程序執(zhí)行的一條條線索,稱為線程。操作系統(tǒng)中的每一個進(jìn)程中都至少存在一個線程。例如,當(dāng)一個Java程序啟動時,就會產(chǎn)生一個進(jìn)程,在該進(jìn)程中會默認(rèn)創(chuàng)建一個線程,在這個線程上會運行main()方法中的代碼。
代碼都是按照調(diào)用順序依次往下執(zhí)行的,沒有出現(xiàn)兩段程序代碼交替運行的效果,這樣的程序稱為單線程程序。如果希望程序中實現(xiàn)多段程序代碼交替運行的效果,則需要創(chuàng)建多個線程,即多線程程序。多線程,是指一個進(jìn)程在執(zhí)行過程中可以產(chǎn)生多個單線程,這些單線程程序在運行時是相互獨立的,它們可以并發(fā)執(zhí)行。多線程程序的執(zhí)行過程如圖8-2所示。
圖8-2 多線程程序的執(zhí)行過程