目錄執行緒定時器
程序池和執行緒池
import queue
q=queue.queue()
q.put('123')
q.put('456')
q.put('789')
print(q.get())
print(q.get())
print(q.get())
q.task_done()
# q.task_done()
q.task_done()
q.join() #等到佇列裡的元素都被消費才進行下一步
q.put(1)
print(q.get())
import queue
q=queue.lifoqueue() #棧,先進後出
q.put('123')
q.put('456')
q.put('789')
print(q.get())
print(q.get())
print(q.get())
q.task_done()
q.task_done()
q.task_done()
q.join() #等到佇列裡的元素都被消費才進行下一步
q.put(1)
print(q.get())
import queue
q=queue.priorityqueue() #以元祖的形式輸入,第乙個整形為優先順序,小的先輸出
q.put((1,'123'))
q.put((4,'456'))
q.put((2,'789'))
print(q.get())
print(q.get())
print(q.get())
q.task_done()
q.task_done()
q.task_done()
q.join() #等到佇列裡的元素都被消費才進行下一步
q.put((1,'ad'))
print(q.get())
from threading import thread,timer
import time
def test():
print('start')
time.sleep(1)
print('end')
t=timer(3,function=test) #3秒後開啟執行緒
t.start()
from concurrent.futures import threadpoolexecutor
import time
def test():
print(time.time())
time.sleep(1)
# return i**3
pool=threadpoolexecutor(5) #執行緒池,程序池用processpoolexecutor
list=
for i in range(20):
furture=pool.submit(test)
for i in list:
print(i.result())
from concurrent.futures import processpoolexecutor,threadpoolexecutor
from threading import currentthread
from multiprocessing import current_process
import time
def task(i):
print(f' 在執行任務 ')
# print(f'程序 在執行任務 ')
time.sleep(1)
return i**2
def parse(future):
# 處理拿到的結果
print(future.result())
if __name__ == '__main__':
pool = threadpoolexecutor(4) # 池子裡只有4個執行緒
# pool = processpoolexecutor(4) # 池子裡只有4個執行緒
fu_list =
for i in range(20):
# pool.submit(task,i) # task任務要做20次,4個執行緒負責做這個事
future = pool.submit(task,i) # task任務要做20次,4個程序負責做這個事
future.add_done_callback(parse)
# 為當前任務繫結了乙個函式,在當前任務執行結束的時候會觸發這個函式,
# 會把future物件作為引數傳給函式
# 這個稱之為**函式,處理完了回來就呼叫這個函式.
# print(future.result()) # 如果沒有結果一直等待拿到結果,導致了所有的任務都在序列
# pool.shutdown() # 關閉了池的入口,會等待所有的任務執行完,結束阻塞.
# for fu in fu_list:
# print(fu.result())
python day39 正式學習
目錄訊號量 gil全域性直譯器鎖 from threading import thread,lock x 0lock lock def test lock.acquire 鎖住不讓cpu切換 global x for i in range 111100 x 1 lock.release t thre...
python day38 正式學習
目錄子執行緒和子程序的建立速度 子執行緒共享資源 執行緒的join方法 守護執行緒 執行緒其他用法 from threading import thread import time def test print hello world t thread target test t.start pri...
python day17 正式學習
目錄注意事項 模組不來總結了,直接去看吧 包是模組的一種形式,包的本質就是乙個含有.py的檔案的資料夾。模組的第乙個版本只有10個功能,但是未來在擴充套件版本的時候,模組名和用法應該最好不要去修改,但是這只是對使用者友好,而由於版本擴充套件,檔案越來越大,模組設計者對模組的管理 維護會越來越複雜,因...