python—多线程定义和创建(一)
一、線程的理解
線程是"輕量級""的,一個進程中的線程使用同樣的地址空間,且共享許多資源。啟動線程的時間遠遠小于啟動進程的時間和空間,而且,線程間的切換也要比進程間的切換快得多。由于使用同樣的地址空間,所以線程之間的數據通信比較方便,一個進程下的線程之間可以直接使用彼此的數據。當然,這種方便性也會帶來一些問題,特別是同步問題。。
多線程對于那些I/O受限的程序特別適用。
二、線程分類:
內核線程:由操作系統內核創建和撤銷。
用戶線程:不需要內核支持而在用戶程序中實現的線程。
三、線程的生命周期
一個線程在其生命周期內,會在不同的狀態之間轉換。在任何一個時刻,線程總是處于某種線程狀態中。雖然不同的操作系統可以實現不同的線程模型,定義不同的線程狀態,但是總的說來,一個線程模型中下面幾種狀態是通用的。
1、線程的創建:t=threading.Thread()
2、就緒狀態:已經獲得了除CPU之外的其他資源,正在參與調度,等待被執行,當調度完成之后,立即運行
3、啟動狀態:獲得了CPU時間片段,正在運行
4、等待\阻塞狀態:遇到time.sleep()時,會阻塞,暫時不參與調度,等待事件發生
5、中止狀態:線程運行結束,run函數運行結束,等待系統回收其線程資源。
四、函數創建線程
執行結果:
四、類創建線程
t=MyThread(name=s[i]) 創建線程,里面的參數代表線程的名字,如果不傳,系統會默認有一個名字
五、多線程之得到線程的數量
執行結果
count=len(threading.enumerate()) 獲得當前運行的線程的數量
為什么線程一開始為6呢?
5個子線程+1個主線程
總結
以上是生活随笔為你收集整理的python—多线程定义和创建(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python—多线程之守护线程
- 下一篇: python—多线程之数据混乱问题