日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python—多线程定义和创建(一)

發(fā)布時間:2025/3/21 python 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python—多线程定义和创建(一) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、線程的理解
線程是"輕量級""的,一個進(jìn)程中的線程使用同樣的地址空間,且共享許多資源。啟動線程的時間遠(yuǎn)遠(yuǎn)小于啟動進(jìn)程的時間和空間,而且,線程間的切換也要比進(jìn)程間的切換快得多。由于使用同樣的地址空間,所以線程之間的數(shù)據(jù)通信比較方便,一個進(jìn)程下的線程之間可以直接使用彼此的數(shù)據(jù)。當(dāng)然,這種方便性也會帶來一些問題,特別是同步問題。。
多線程對于那些I/O受限的程序特別適用。

二、線程分類:
內(nèi)核線程:由操作系統(tǒng)內(nèi)核創(chuàng)建和撤銷。
用戶線程:不需要內(nèi)核支持而在用戶程序中實現(xiàn)的線程。

三、線程的生命周期

一個線程在其生命周期內(nèi),會在不同的狀態(tài)之間轉(zhuǎn)換。在任何一個時刻,線程總是處于某種線程狀態(tài)中。雖然不同的操作系統(tǒng)可以實現(xiàn)不同的線程模型,定義不同的線程狀態(tài),但是總的說來,一個線程模型中下面幾種狀態(tài)是通用的。

1、線程的創(chuàng)建:t=threading.Thread()
2、就緒狀態(tài):已經(jīng)獲得了除CPU之外的其他資源,正在參與調(diào)度,等待被執(zhí)行,當(dāng)調(diào)度完成之后,立即運(yùn)行
3、啟動狀態(tài):獲得了CPU時間片段,正在運(yùn)行
4、等待\阻塞狀態(tài):遇到time.sleep()時,會阻塞,暫時不參與調(diào)度,等待事件發(fā)生
5、中止?fàn)顟B(tài):線程運(yùn)行結(jié)束,run函數(shù)運(yùn)行結(jié)束,等待系統(tǒng)回收其線程資源。

四、函數(shù)創(chuàng)建線程

執(zhí)行結(jié)果:

四、類創(chuàng)建線程

t=MyThread(name=s[i]) 創(chuàng)建線程,里面的參數(shù)代表線程的名字,如果不傳,系統(tǒng)會默認(rèn)有一個名字
五、多線程之得到線程的數(shù)量

執(zhí)行結(jié)果

count=len(threading.enumerate()) 獲得當(dāng)前運(yùn)行的線程的數(shù)量
為什么線程一開始為6呢?
5個子線程+1個主線程

總結(jié)

以上是生活随笔為你收集整理的python—多线程定义和创建(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。