电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

python threading模塊的使用指南

瀏覽:40日期:2022-06-17 14:02:20
目錄1. threding模塊創建線程對象2. threding模塊創建多線程3. 多線程的參數傳遞4. 線程產生的資源競爭1. threding模塊創建線程對象

接上述案例,我們可以利用程序阻塞的時間讓程序執行后面的任務,可以用多線程的方式去實現。對應的需要我們借助threading模塊去實現:如下所示

import timeimport threadingdef work():'''只有函數對象才能?煙錈?呋?''print(’5.洗茶杯: 1min ’ )time.sleep(1)print(’6.放茶葉: 1min ’ )time.sleep(1)start_time = time .time()print( ’1.洗壺: 1min ’ )time.s1eep(1)print( ’2.灌涼水:1min ’ )time.sleep(1)print( ’3.燒水: 1min ’ )time.sleep(1)print( ’4.等水燒開:3min ’ )work_thread = threading.Thread(target=work)# 啟動線程對象work_thread.start()time.sleep(1) # 5.洗茶杯: 1mintime.sleep(1) # 6.放茶葉: 1mintime.sleep(1)print( ’7.泡茶:1min ’ )time.sleep(1)print(’總共花了: ’,time.time() - start_time)

以上案例是一個單線程,需要特別注意的是threading模塊操作線程所操作的必須是函數對象。通過threding模塊可以把一個普通的函數對象轉化為線程對象。

2. threding模塊創建多線程

當一個進程啟動之后,會默認產生一個主線程,因為線程是程序執行流的最小單元,當設置多線程時,主線程會創建多個子線程,在python中,默認情況下,主線程執行完自己的任務以后,就退出了,此時子線程會繼續執行自己的任務,直到自己的任務結束。

import timeimport threadingdef upload():print('開始上傳文件...')time.sleep(2)print('完成上傳文件...')def down1oad():print('開始下載文件...')time.s1eep(2)print('完成下載文件...')if __name__ == ’__main__’:upload_thread = threading.Thread(target=up1oad)up1oad_thread .start()up1oad_thread.join()down1oad_thread = threading.Thread(target=down1oad,daemon=True)down1oad_thread.start()print(’主線程結束’)

也就是說主線程在分配任務時會創建多個子線程,子線程的任務進度不會阻礙主線程的執行。但是主線程會等待子線程執行任務完之后才結束主線程。也就是說實際上主線程是先執行完任務的,如果你想在主線程執行完之后就結束整個線程的話,那么可以設置守護主線程。

3. 多線程的參數傳遞

多線程的參數傳遞用args接受位置參數,用kwargs接受關鍵字參數。如下所示:

import threadingdef get(ur1,header=None): print(ur1) print(header)for url in [ ’https : / /www.baidu.com’, ’https:/ /www. soso.com ’ ,’ https: / /www . 360. com’]: # threading.Threadget_thread = threading. Thread(target=get,args=(ur1, ), kwargs={ ’ header ’:{ ’user-agent ’ : ’ pythonrequests’}}) get_thread.start4. 線程產生的資源競爭

首先我們來看一個案例:

import threadingimport timeimport randomdef add1(n): for i in range(100) :time.sleep(random.randint(1,3))with open( ’he7lo.txt’, mode=’a’, encoding=’utf-8 ’ ) as f: f.write(f’in} he1lo wor1d !’+ ’he7lo wor1d !’*1024) f.write(’ n ’)if __name__ == ’___main__’ : for n in range(10) :t1 = threading. Thread(target=add1,args=(n,))t1.start()

以上就是python threading模塊的使用指南的詳細內容,更多關于python threading模塊的使用的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 门禁卡_智能IC卡_滴胶卡制作_硅胶腕带-卡立方rfid定制厂家 | 三价铬_环保铬_环保电镀_东莞共盈新材料贸易有限公司 | 阻垢剂,反渗透阻垢剂,缓蚀阻垢剂-山东普尼奥水处理科技有限公司 真空粉体取样阀,电动楔式闸阀,电动针型阀-耐苛尔(上海)自动化仪表有限公司 | 实木家具_实木家具定制_全屋定制_美式家具_圣蒂斯堡官网 | 上海噪音治理公司-专业隔音降噪公司-中广通环保 | 进口便携式天平,外校_十万分之一分析天平,奥豪斯工业台秤,V2000防水秤-重庆珂偌德科技有限公司(www.crdkj.com) | 健身器材-健身器材厂家专卖-上海七诚健身器材有限公司 | 龙门加工中心-数控龙门加工中心厂家价格-山东海特数控机床有限公司_龙门加工中心-数控龙门加工中心厂家价格-山东海特数控机床有限公司 | 广州市哲铭油墨涂料有限公司,水性漆生产研发基地 | 澳威全屋定制官网|极简衣柜十大品牌|衣柜加盟代理|全屋定制招商 百度爱采购运营研究社社群-店铺托管-爱采购代运营-良言多米网络公司 | 发电机价格|发电机组价格|柴油发电机价格|柴油发电机组价格网 | 珠海白蚁防治_珠海灭鼠_珠海杀虫灭鼠_珠海灭蟑螂_珠海酒店消杀_珠海工厂杀虫灭鼠_立净虫控防治服务有限公司 | 四川实木门_成都实木门 - 蓬溪聚成门业有限公司| 蒸汽热收缩机_蒸汽发生器_塑封机_包膜机_封切收缩机_热收缩包装机_真空机_全自动打包机_捆扎机_封箱机-东莞市中堡智能科技有限公司 | 捷码低代码平台 - 3D数字孪生_大数据可视化开发平台「免费体验」 | 国产频谱分析仪-国产网络分析仪-上海坚融实业有限公司 | 废旧物资回收公司_广州废旧设备回收_报废设备物资回收-益美工厂设备回收公司 | 压力控制器,差压控制器,温度控制器,防爆压力控制器,防爆温度控制器,防爆差压控制器-常州天利智能控制股份有限公司 | 阿米巴企业经营-阿米巴咨询管理-阿米巴企业培训-广东键锋企业管理咨询有限公司 | 天然鹅卵石滤料厂家-锰砂滤料-石英砂滤料-巩义东枫净水 | 【甲方装饰】合肥工装公司-合肥装修设计公司,专业从事安徽办公室、店面、售楼部、餐饮店、厂房装修设计服务 | 桂林腻子粉_内墙外墙抗裂砂浆腻子粉推荐广西鑫达涂料厂家供应 | 【ph计】|在线ph计|工业ph计|ph计厂家|ph计价格|酸度计生产厂家_武汉吉尔德科技有限公司 | TPE塑胶原料-PPA|杜邦pom工程塑料、PPSU|PCTG材料、PC/PBT价格-悦诚塑胶 | 药品/药物稳定性试验考察箱-埃里森仪器设备(上海)有限公司 | 工控机-工业平板电脑-研华工控机-研越无风扇嵌入式box工控机 | 诺冠气动元件,诺冠电磁阀,海隆防爆阀,norgren气缸-山东锦隆自动化科技有限公司 | 哈尔滨发电机,黑龙江柴油发电机组-北方星光 | 膜片万向弹性联轴器-冲压铸造模具「沧州昌运模具」 | 太原装修公司_山西整装家装设计_太原室内装潢软装_肖邦家居 | 全自动固相萃取仪_高通量真空平行浓缩仪-勤业永为 | 上海冠顶工业设备有限公司-隧道炉,烘箱,UV固化机,涂装设备,高温炉,工业机器人生产厂家 | 艺术涂料|木纹漆施工|稻草漆厂家|马来漆|石桦奴|水泥漆|选加河南天工涂料 | 京港视通报道-质量走进大江南北-京港视通传媒[北京]有限公司 | 煤矿人员精确定位系统_矿用无线通信系统_煤矿广播系统 | 山东彩钢板房,山东彩钢活动房,临沂彩钢房-临沂市贵通钢结构工程有限公司 | 汽车润滑油厂家-机油/润滑油代理-高性能机油-领驰慧润滑科技(河北)有限公司 | 泰安塞纳春天装饰公司【网站】| BESWICK球阀,BESWICK接头,BURKERT膜片阀,美国SEL继电器-东莞市广联自动化科技有限公司 | 贵州科比特-防雷公司厂家提供贵州防雷工程,防雷检测,防雷接地,防雷设备价格,防雷产品报价服务-贵州防雷检测公司 | 睿婕轻钢别墅_钢结构别墅_厂家设计施工报价 |