教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

Java培訓(xùn):Java線程概述

更新時(shí)間:2022年03月21日14時(shí)23分 來源:傳智教育 瀏覽次數(shù):

  在日常生活中,很多事情都是可以同時(shí)進(jìn)行的。例如一個(gè)人可以一邊聽音樂,一邊打掃房間;可以一邊吃飯,一邊看電視。在使用計(jì)算機(jī)時(shí),很多任務(wù)也是可以同時(shí)進(jìn)行的。例如,可以一邊瀏覽網(wǎng)頁,一邊打印文檔,還可以一邊聊天,一邊復(fù)制文件。

  計(jì)算機(jī)能夠同時(shí)完成多項(xiàng)任務(wù),例如,讓瀏覽器執(zhí)行0.001秒,讓QQ執(zhí)行0.001秒,這就是多線程技術(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是支持多線程的語言之一,它對(duì)多線程編程提供了內(nèi)置的支持,可以使程序同時(shí)執(zhí)行多個(gè)執(zhí)行片段。

  每個(gè)運(yùn)行的程序都是一個(gè)進(jìn)程,在一個(gè)進(jìn)程中還可以有多個(gè)執(zhí)行單元同時(shí)運(yùn)行,這些執(zhí)行單元可以看作程序執(zhí)行的一條條線索,稱為線程。操作系統(tǒng)中的每一個(gè)進(jìn)程中都至少存在一個(gè)線程。例如,當(dāng)一個(gè)Java程序啟動(dòng)時(shí),就會(huì)產(chǎn)生一個(gè)進(jìn)程,在該進(jìn)程中會(huì)默認(rèn)創(chuàng)建一個(gè)線程,在這個(gè)線程上會(huì)運(yùn)行main()方法中的代碼。

  代碼都是按照調(diào)用順序依次往下執(zhí)行的,沒有出現(xiàn)兩段程序代碼交替運(yùn)行的效果,這樣的程序稱為單線程程序。如果希望程序中實(shí)現(xiàn)多段程序代碼交替運(yùn)行的效果,則需要?jiǎng)?chuàng)建多個(gè)線程,即多線程程序。多線程,是指一個(gè)進(jìn)程在執(zhí)行過程中可以產(chǎn)生多個(gè)單線程,這些單線程程序在運(yùn)行時(shí)是相互獨(dú)立的,它們可以并發(fā)執(zhí)行。多線程程序的執(zhí)行過程如圖8-2所示。

多線程程序的執(zhí)行過程
圖8-2 多線程程序的執(zhí)行過程

0 分享到:
和我們?cè)诰€交談!