執行緒和程序主要用法區別執行緒模組 from threading import thread
程序模組 from multiprocessing import process
from threading import thread # 建立執行緒的模組
deftask
(name):
print(name)
if __name__ == '__main__':
# 開啟執行緒 引數1:方法名(不要帶括號) 引數2:引數(元祖) 返回物件
p = thread(target=task, args=('執行緒1',))
p.start() # 只是給作業系統傳送了乙個就緒訊號,並不是執行。作業系統接收訊號後安排cpu執行
print('主')
from threading import thread # 建立執行緒的模組
class
mythread
(thread):
def__init__
(self, name):
super().__init__()
self.name = name
defrun(self):
# 固定名字run !!!必須用固定名
print(self.name)
if __name__ == '__main__': # 必須要這樣啟動
p = mythread('子執行緒1')
p.start()
print('主)
from threading import thread
from threading import currentthread # 獲取當前執行緒物件的 物件
import time
deftask
(): print('%s is runing' %currentthread().getname()) # 獲取執行緒名
time.sleep(2)
print('%s is down' % currentthread().getname())
if __name__ == '__main__':
t = thread(target=task, name='這裡設定子執行緒初始化名')
t.start()
t.setname('設定執行緒名') # !!!!
t.join() # 等待子執行緒執行結束
# currentthread() 等同於 執行緒物件t 所以獲取執行緒名也可以t.getname()
print('主線程', currentthread().getname())
# 但在主線程內(並沒有執行緒物件)要獲取執行緒名必須用 currentthread().getname()
t.isalive() # 執行緒是否存活! 檢視執行緒物件是否存活
Python 開啟執行緒和程序的兩種方式
開銷 在發生開啟程序給作業系統時,作業系統需要申請記憶體空間給子程序,拷貝父程序位址空間到子程序,而開啟執行緒不需要這些步驟,因此開啟程序開銷遠大於執行緒,開啟速度為執行緒快 位址空間 程序之間位址空間是隔離的,開多個程序,每個程序都有不同的pid,但子程序的資料是來自於拷貝父程序的資料,程序之間存...
執行緒理論及開啟執行緒的兩種方式
manage 建立共享內容 生產者消費者模型使用場景 多道技術 不太清楚 生產者消費者模型可以應用於多台機器上 分布式 可以多台計算器放著生產者,壞了幾台也不影響,穩定。如果有多個生產者消費者那麼佇列就要基於網路,應該做成套接字。放在main下面匯入問題 開啟子程序涉及到乙個匯入模組的問題,不放在m...
執行緒的兩種建立方法
執行緒建立的第一種方式 編寫乙個類 直接繼承thread,然後重寫run方法 public class threadtest class mythreads extends thread 執行緒建立的第二種方式 編寫乙個類實現runnable介面,最好用這個方法面向介面程式設計 public cla...