提起線程和進(jìn)程,有很多小伙伴就會(huì)有種被考試支配的感覺,線程和進(jìn)程是操作系統(tǒng)中十分重要的概念。我們?cè)僖黄饛?fù)習(xí)一下 線程 和 進(jìn)程 的區(qū)別:
- 一個(gè)程序至少要有一個(gè)進(jìn)程,一個(gè)進(jìn)程至少要有一個(gè)線程,也就是說(shuō)進(jìn)程包含線程,線程是更小的單位。
- 進(jìn)程擁有獨(dú)立的內(nèi)存單元,屬于同一個(gè)進(jìn)程的多個(gè)線程會(huì)共享同一個(gè)進(jìn)程的內(nèi)存。
- 進(jìn)程可以獨(dú)立運(yùn)行,但是線程必須依附于進(jìn)程運(yùn)行。
現(xiàn)在相信小伙伴們已經(jīng)回憶起進(jìn)程和線程是什么了。那么什么又是多線程呢?多線程就是在一個(gè)進(jìn)程中的多個(gè)線程并發(fā)運(yùn)行,以處理不同的任務(wù)。注意,這里的并發(fā)并不是真正地同時(shí)進(jìn)行(區(qū)別于并行),在同一時(shí)間,cpu只能處理一條線程,多線程并發(fā)執(zhí)行也就是cpu快速地在多條線程之間切換,當(dāng)cpu切換速度很快時(shí),我們使用計(jì)算機(jī)的時(shí)候并不會(huì)察覺到cpu的切換,計(jì)算機(jī)上運(yùn)行的多個(gè)程序都會(huì)以很高地實(shí)時(shí)性響應(yīng)用戶的操作,這也是多線程的潛在優(yōu)勢(shì),但是這種高響應(yīng)性能也增加了代碼的復(fù)雜性,需要小伙伴們?cè)陂_發(fā)程序的時(shí)候,要多考慮一下,業(yè)務(wù)場(chǎng)景是否真的適合多線程。
下面我們演示一下多線程定義和查看線程的信息:
import threading
def main():
# 新添加一個(gè)thread
added_thread = threading.Thread()
# 需要給線程一個(gè)功能
print(threading.active_count()) # 可以查看當(dāng)前有多少線程被激活
print(threading.enumerate()) # 查看所有被激活線程的名字
print(threading.current_thread()) # 查看當(dāng)前線程是什么,正在運(yùn)行print語(yǔ)句的線程
if __name__ == '__main__':
main()
本篇到這里就要結(jié)束了,我們只是介紹了一下多線程的基礎(chǔ)知識(shí),對(duì)于多線程的更深入的講解不會(huì)在本篇提現(xiàn),希望小伙伴們能夠掌握多線程的定義,跟多線程混個(gè)臉熟就可以了,后續(xù)待小伙伴們基礎(chǔ)不斷牢固,我們會(huì)再講解更深的使用部分。