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