更新時間:2022-10-27 來源:黑馬程序員 瀏覽量:
線程也可以被稱為輕量進程,在程序的執(zhí)行流中線程是最小的單元。線程ID、當前計算機的指令指針、寄存器集合和堆棧組成了一個標準的線程。在進程中,線程屬于實體,是被系統(tǒng)獨立調(diào)度和分派的基本單位。線程沒有私有的系統(tǒng)資源,但它可與同屬一個進程的其它線程共享進程所擁有的全部資源。一個線程擁有創(chuàng)建和撤銷另一個線程的功能,在同一個進程中,多個線程之間可以并發(fā)進行。
線程是程序中一個單一的順序控制流程。執(zhí)行單元在進程之內(nèi),是相對獨立且可調(diào)度的。它也是系統(tǒng)獨立調(diào)度和分派CPU的基本單位指令運行時的程序的調(diào)度單位。在單個程序中同時運行多個線程完成不同的工作,被稱為多線程。Python多線程用于I/O操作密集型任務(wù),如SocketServer網(wǎng)絡(luò)并發(fā)、網(wǎng)絡(luò)爬蟲。
現(xiàn)代處理器都是多核心的,能同時處理幾個線程取決于是幾核的處理器,多線程執(zhí)行程序看起來是同時進行,實際上是CPU在多個線程之間快速切換執(zhí)行,這中間就涉及了上下文切換。所謂的上下文切換,就是指一個線程Thread被分配的時間片用完后,線程的信息被保存起來,CPU執(zhí)行另外的線程,再到CPU讀取線程Thread的信息并繼續(xù)執(zhí)行Thread的過程。