1、threading類
設定子執行緒為守護執行緒,(setdaemon=true),當主線程結束時,守護執行緒會自動結束
import threading
def run(x):
while x:
print(x)
t = threading.thread(target=run,args=(4,), daemon=true)
#t.setdaemon(true)
#t.daemon=true
t.start() # 開始執行緒
# t.join() # join() 表示主線程阻塞,一直等子執行緒執行結束
2、類中直接設定標誌位
import threading
class run():
def __init__(self):
self._flag=false
def run(self,x):
while x:
print(x,self._flag)
if self._flag:
break
def terminate(self):
self._flag = true
if __name__ == '__main__':
fun = run()
t = threading.thread(target=fun.run, args=(5,))
t.start()
p=5while p:
print(threading.activecount())
p=p-1
fun.terminate()
t.join()
2.5、
threading.event()產生乙個event物件。event缺省內置了乙個標誌,初始值為false,
set():將標誌置為true;
clear():則用於清除標誌位(使之為false);
wait(timeout):當event物件的內部訊號標誌為false時。wait方法一直堵塞執行緒等待到其為真或者超時(若提供,浮點數,單位為秒)才返回,若event物件內部標誌為true則wait()方法馬上返回;
isset():用於查詢標誌位是否為true,
import threading
import time
class job(threading.thread):
def __init__(self, *args, **kwargs):
super(job, self).__init__(*args, **kwargs)
self.__flag = threading.event() # 用於暫停執行緒的標識
self.__flag.set() # 設定為true
self.__running = threading.event() # 用於停止執行緒的標識
self.__running.set() # 將running設定為true
def run(self):
while self.__running.isset():
self.__flag.wait() # 為true時立即返回, 為false時阻塞直到內部的標識位為true後返回
print time.time()
time.sleep(1)
def pause(self):
self.__flag.clear() # 設定為false, 讓執行緒阻塞
def resume(self):
self.__flag.set() # 設定為true, 讓執行緒停止阻塞
def stop(self):
self.__flag.set() # 將執行緒從暫停狀態恢復, 如何已經暫停的話
self.__running.clear() # 設定為false
Python3多執行緒
學習python執行緒 python3 執行緒中常用的兩個模組為 thread threading 推薦使用 thread 模組已被廢棄。使用者可以使用 threading 模組代替。所以,在 python3 中不能再使用 thread 模組。為了相容性,python3 將 thread 重新命名為...
python3 執行緒死鎖
所謂死鎖 是指兩個或兩個以上的程序或執行緒在執行過程中,因爭奪資源而造成的一種互相等待的現象,若無外力作用,它們都將無法推進下去。此時稱系統處於死鎖狀態或系統產生了死鎖,這些永遠在互相等待的程序稱為死鎖程序,如下就是死鎖 code from threading import thread,lock ...
python3 多執行緒
多執行緒簡介 執行緒 thread 也稱輕量級程序,時作業系統能夠進行運算排程的最小單位,它被包涵在程序之中,時程序中的實際運作單位。執行緒自身不擁有資源,只擁有一些在執行中必不可少的資源,但他可與同屬乙個程序的其他執行緒共享程序所擁有的全部資源。乙個執行緒可以建立和撤銷另乙個執行緒,同一程序中的多...