久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Python多線程多進(jìn)程實(shí)例對(duì)比解析

瀏覽:4日期:2022-08-02 15:06:00

多線程適合于多io操作

多進(jìn)程適合于耗cpu(計(jì)算)的操作

# 多進(jìn)程編程# 耗cpu的操作,用多進(jìn)程編程, 對(duì)于io操作來(lái)說(shuō),使用多線程編程import timefrom concurrent.futures import ThreadPoolExecutor, as_completedfrom concurrent.futures import ProcessPoolExecutordef fib(n): if n <= 2: return 1 return fib(n - 2) + fib(n - 1)if __name__ == ’__main__’: # 1. 對(duì)于耗cpu操作,多進(jìn)程優(yōu)于多線程 # with ThreadPoolExecutor(3) as executor: # all_task = [executor.submit(fib, num) for num in range(25, 35)] # start_time = time.time() # for future in as_completed(all_task): # data = future.result() # print(data) # print('last time :{}'.format(time.time() - start_time)) # 3.905290126800537 # 多進(jìn)程 ,在window環(huán)境 下必須放在main方法中執(zhí)行,否則拋異常 with ProcessPoolExecutor(3) as executor: all_task = [executor.submit(fib, num) for num in range(25, 35)] start_time = time.time() for future in as_completed(all_task): data = future.result() print(data) print('last time :{}'.format(time.time() - start_time)) # 2.6130592823028564

可以看到在耗cpu的應(yīng)用中,多進(jìn)程明顯優(yōu)于多線程 2.6130592823028564 < 3.905290126800537

下面模擬一個(gè)io操作

# 多進(jìn)程編程# 耗cpu的操作,用多進(jìn)程編程, 對(duì)于io操作來(lái)說(shuō),使用多線程編程import timefrom concurrent.futures import ThreadPoolExecutor, as_completedfrom concurrent.futures import ProcessPoolExecutordef io_operation(n): time.sleep(2) return nif __name__ == ’__main__’: # 1. 對(duì)于耗cpu操作,多進(jìn)程優(yōu)于多線程 # with ThreadPoolExecutor(3) as executor: # all_task = [executor.submit(io_operation, num) for num in range(25, 35)] # start_time = time.time() # for future in as_completed(all_task): # data = future.result() # print(data) # print('last time :{}'.format(time.time() - start_time)) # 8.00358772277832 # 多進(jìn)程 ,在window環(huán)境 下必須放在main方法中執(zhí)行,否則拋異常 with ProcessPoolExecutor(3) as executor: all_task = [executor.submit(io_operation, num) for num in range(25, 35)] start_time = time.time() for future in as_completed(all_task): data = future.result() print(data) print('last time :{}'.format(time.time() - start_time)) # 8.12435245513916

可以看到 8.00358772277832 < 8.12435245513916, 即是多線程比多進(jìn)程更牛逼!

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 衡阳县| 布尔津县| 玛曲县| 泰州市| 新龙县| 屏南县| 盐边县| 扎鲁特旗| 翁牛特旗| 庆阳市| 乌鲁木齐市| 邹城市| 靖州| 永平县| 惠来县| 嘉兴市| 霍林郭勒市| 油尖旺区| 黄山市| 闸北区| 昭觉县| 赤城县| 汝州市| 齐河县| 永清县| 迭部县| 肃南| 迁西县| 大宁县| 克东县| 九江县| 神农架林区| 上饶县| 连江县| 长治县| 青铜峡市| 通江县| 南江县| 南和县| 常宁市| 峨边|