提起線程和進(jìn)程攀唯,有很多小伙伴就會(huì)有種被考試支配的感覺洁桌,線程和進(jìn)程是操作系統(tǒng)中十分重要的概念。我們?cè)僖黄饛?fù)習(xí)一下 線程 和 進(jìn)程 的區(qū)別:
- 一個(gè)程序至少要有一個(gè)進(jìn)程侯嘀,一個(gè)進(jìn)程至少要有一個(gè)線程另凌,也就是說進(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語句的線程
if __name__ == '__main__':
main()
本篇到這里就要結(jié)束了窟却,我們只是介紹了一下多線程的基礎(chǔ)知識(shí),對(duì)于多線程的更深入的講解不會(huì)在本篇提現(xiàn)呻逆,希望小伙伴們能夠掌握多線程的定義夸赫,跟多線程混個(gè)臉熟就可以了,后續(xù)待小伙伴們基礎(chǔ)不斷牢固咖城,我們會(huì)再講解更深的使用部分茬腿。