python 執行緒的兩種開啟方法,及線常用方法

2021-08-20 19:40:09 字數 1511 閱讀 2518

執行緒和程序主要用法區別

執行緒模組 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...