python多執行緒————8、多執行緒與多程序對比
阿新 • • 發佈:2018-11-12
#多程序程式設計 #耗cpu的操作,用多程序程式設計,對於io操作來說,使用多執行緒程式設計,程序切換代價要高於執行緒 import time from concurrent.futures import ThreadPoolExecutor,ProcessPoolExecutor,as_completed #1、對於耗費cpu的操作,多程序優於多執行緒 def fib(n): if n<=2: return 1 else: return fib(n-1) + fib(n-2) # if __name__ == "__main__": # start_time = time.time() # with ThreadPoolExecutor(5) as executor: # #ProcessPoolExecutor # all_task = [executor.submit(fib,(x)) for x in range(30,45)] # for future in as_completed(all_task): # data = future.result() # print(data) # print(time.time()-start_time) #2.對於io操作來說,多執行緒優於多程序 def random_sleep(n): time.sleep(n) return n if __name__ == "__main__": start_time = time.time() with ThreadPoolExecutor(5) as executor: #ProcessPoolExecutor all_task = [executor.submit(random_sleep,(x)) for x in [2]*20] for future in as_completed(all_task): data = future.result() print(data) print(time.time()-start_time)