----------------------------------无法改变风向,可以调整风帆;无法左右天气,可以调整心情。如果事情无法改变,那就去改变观念。
# # ------------------------------------------------------------------------------------------------------------#
# # --------------[线程队列]-------------- # import queue #先进先出队列# q = queue.Queue(3) #创建了一个长度为3的队列,也就是说,最多只能放3个数据## q.put(2)# print(‘>>>>‘,q.qsize())# q.put(5)# print(‘>>>>‘,q.qsize())# q.put(0)## # q.put(1)# try:# q.put_nowait(1)# except Exception:# print(‘队列满了‘)# print(q.get())# print(q.get())# print(q.get())# # print(q.get())# # print(q.get_nowait()) #后进先出,先进后出 # import queue## q = queue.LifoQueue(3)## q.put(1)# q.put(2)# q.put(3)## print(q.get())# print(q.get())# print(q.get()) # 优先级队列 import queue q = queue.PriorityQueue(5) q.put((3,33)) q.put((1,2))q.put((1,3))# q.put((1,(3,2)))# q.put((1,(1,2))) q.put((2,22))q.put((4,44)) print(q.get())print(q.get())print(q.get())print(q.get())print(q.get()) # # --------------[创建线程池]-------------- import timefrom concurrent.futures import ThreadPoolExecutor,ProcessPoolExecutorfrom multiprocessing import Pool def func(n): # print(n) time.sleep(1) return n * n if __name__ == ‘__main__‘: # t_p = ThreadPoolExecutor(max_workers=4) t_p = ProcessPoolExecutor(max_workers=4) # p_pool = Pool(4) res_list = [] for i in range(10): res = t_p.submit(func,i) #异步提交任务 # print(res.result()) #等待任务的执行结果,拿不到就阻塞,拿到了再运行 res_list.append(res) t_p.shutdown() print(‘主线程结束‘) for res1 in res_list: print(res1.result()) # for i in range(10): # res = p_pool.apply_async(func,args=(i,)) # # print(res) # print(res.get()) # # --------------[进程池的map方法]-------------- import timefrom concurrent.futures import ThreadPoolExecutor,ProcessPoolExecutorfrom multiprocessing import Pool def func(n): # print(n) time.sleep(1) return n * n if __name__ == ‘__main__‘: t_p = ThreadPoolExecutor(max_workers=4) # t_p = ProcessPoolExecutor(max_workers=4) # p_pool = Pool(4) # res_list = [] res = t_p.map(func,range(10)) # # print(res) t_p.shutdown() print(‘主线程结束‘) for i in res: print(i) # print([t1 for t1 in res]) # for i in range(10): # res = t_p.submit(func,i) #异步提交任务 # # print(res.result()) #等待任务的执行结果,拿不到就阻塞,拿到了再运行 # res_list.append(res) # # t_p.shutdown() # # print(‘主线程结束‘) # # for res1 in res_list: # print(res1.result()) # for i in range(10): # res = p_pool.apply_async(func,args=(i,)) # # print(res) # print(res.get()) # # --------------[回调函数]-------------- import timefrom concurrent.futures import ThreadPoolExecutor,ProcessPoolExecutorfrom multiprocessing import Pool def func(n): time.sleep(1) return n * n def call_back(m): print(‘>>>>>‘,m) print(m.result()) if __name__ == ‘__main__‘: # t_p = ThreadPoolExecutor(max_workers=4) t_p = ProcessPoolExecutor(max_workers=4) p_pool = Pool(4) res_list = [] res = t_p.submit(func,10).add_done_callback(call_back) # p_pool.apply_async(func,args=(10,),callback=call_back) # for i in range(10): # res = p_pool.apply_async(func,args=(i,)) # # print(res) # print(res.get())
原文地址:https://www.cnblogs.com/dealdwong2018/p/10058978.html
时间: 2024-10-04 03:55:31