#一些方法
t1 = threading.Thread(target=你寫(xiě)的函數(shù)名,args=(傳入變量(如果只有一個(gè)變量就必須在后加上逗號(hào)),),name=隨便取一個(gè)線程名):把一個(gè)線程實(shí)例化給t1,這個(gè)線程負(fù)責(zé)執(zhí)行target=你寫(xiě)的函數(shù)名
t1.start():負(fù)責(zé)執(zhí)行啟動(dòng)這個(gè)線程
t1.join():必須要等待你的子線程執(zhí)行完成后再執(zhí)行主線程
t1.setDeamon(True):當(dāng)你的主線程執(zhí)行完畢后翩隧,不管子線程有沒(méi)有執(zhí)行完成都退出主程序砌些,注意不能和t1.join()一起使用梦染。
threading.current_thread().name:打印出線程名
threadLock = threading.Lock()#用于保證同一時(shí)間只有一段程序?qū)δ匙兞窟M(jìn)行修改
threadLock.lock.acquire()#上鎖
threadLock.lock.release()#開(kāi)鎖
acquire():上鎖,這個(gè)時(shí)候只能運(yùn)行上鎖后的代碼
release():解鎖饲嗽,解鎖后把資源讓出來(lái)拟杉,給其他線程使用
#類(lèi)方法實(shí)現(xiàn)多線程
import threading
import time
class mop_floor(threading.Thread):
def __init__(self):
super().__init__()
def run(self):
print('我要拖地了')
time.sleep(1)
print('地拖完了')
import queue
q = queue.Queue(maxsize=100)#定義一個(gè)Queue表列,大小100個(gè)元素
q.put('hello')#放置一個(gè)元素
q.get()#取出一個(gè)元素翅娶,是一個(gè)堵塞的笑旺,會(huì)等待直到獲取到數(shù)據(jù)