學習多執行緒表面上可以理解為提高效率,充分利用資源。
python有兩個模組可以學習,乙個是比較簡單的_thread模組,另乙個是提供比較多整合方法的threading模組(推薦)。
_thread.start_new_thread(func,args[,kargs]) : 第乙個引數是執行緒函式,第二個是傳遞給執行緒函式的引數,第三個是可選引數
import _thread
import time
def print_time(threadname,delay):
count = 0
while count < 5:
time.sleep(delay)
count += 1
print("%s:%s" % (threadname,time.ctime(time.time())))
try:
_thread.start_new_thread(print_time,("thread-1",2,) )
_thread.start_new_thread(print_time,("thread-2",4,) )
except:
print("error:無法啟動執行緒")
while 1:
pass
包含_thread的所有方法
threading.currentthread():返回當前執行緒變數
threading.enumerate():返回包含正在執行的執行緒的list
threading.activecount():返回正在執行的執行緒的數量
物件方法:
run():用來表示執行緒活動的方法
start():啟動執行緒
join(time):可新增超時設定
isalive():返回執行緒是否活動的
getname():返回執行緒名字
setname():設定執行緒名字
import threading
import time
exitflag = 0
class mythread(threading.thread):
def __init__(self,threadid,name,counter):
threading.thread.__init__(self)
self.threadid = threadid
self.name = name
self.counter = counter
def run(self):
print("開始執行緒:"+self.name)
print_time(self.name,self.counter,5)
print("退出執行緒:"+self.name)
def print_time(threadname,delay,counter):
while counter:
print(threading.current_thread)
print(threading.enumerate)
print(threading.activecount)
if exitflag:
threadname.exit()
time.sleep(delay)
print("%s:%s" % (threadname,time.ctime(time.time())))
counter -= 1
thread1 = mythread(1,"thread-1",1)
thread2 = mythread(2,"thread-2",2)
thread1.start()
thread2.start()
thread1.join()
thread2.join()
print(thread1.isalive())
print(threading.current_thread)
print(threading.enumerate)
print("退出主線程")
建立鎖物件:
threadlock = threading.lock()獲取鎖:
threadlock.acquire()釋放鎖:
threadlock.release()
Python3多執行緒
學習python執行緒 python3 執行緒中常用的兩個模組為 thread threading 推薦使用 thread 模組已被廢棄。使用者可以使用 threading 模組代替。所以,在 python3 中不能再使用 thread 模組。為了相容性,python3 將 thread 重新命名為...
python3 多執行緒
多執行緒簡介 執行緒 thread 也稱輕量級程序,時作業系統能夠進行運算排程的最小單位,它被包涵在程序之中,時程序中的實際運作單位。執行緒自身不擁有資源,只擁有一些在執行中必不可少的資源,但他可與同屬乙個程序的其他執行緒共享程序所擁有的全部資源。乙個執行緒可以建立和撤銷另乙個執行緒,同一程序中的多...
Python3多執行緒操作簡單示例
python3 執行緒中常用的兩個模組為 thread threading 推薦使用 thread 模組已被廢棄。使用者可以使用 threading 模組代替。所以,在 python3 中不能再使用 thread 模組。為了相容性,python3 將 thread 重新命名為 thread test...