Python2.7實現(xiàn)多進(jìn)程下開發(fā)多線程示例
簡單的基于Python2.7版本的多進(jìn)程下開發(fā)多線程的示例,供大家參考,具體內(nèi)容如下
可以使得程序執(zhí)行效率至少提升10倍
#!/usr/bin/env python # -*- coding: utf-8 -*- """ @Time : 2018/10/24 @Author : LiuXueWen @Site : @File : transfer.py @Software: PyCharm @Description: """ import os import traceback import threading from multiprocessing import Pool from multiprocessing.dummy import Pool as ThreadPool # 兼容python2.7上多線程的bug,不加上下面的反代理程序不能正常執(zhí)行 def proxy(cls_instance, i): return cls_instance.multiprocess_thread(i) def proxy2(cls_instance, i): return cls_instance.file_operation(i) class file2transfer(): # 多進(jìn)程執(zhí)行程序 def multiprocessingTransferFiles(self): try: # 創(chuàng)建進(jìn)程池 p = Pool() //參數(shù)末尾必須加上逗號 p.apply_async(proxy, args=(self, self.root_path,)) p.close() p.join() except Exception as e: print(e) # 每個進(jìn)程下的多線程執(zhí)行,線程數(shù)等于當(dāng)前機(jī)器的核數(shù) def multiprocess_thread(self, root_path): try: # 創(chuàng)建線程鎖 lock = threading.RLock() lock.acquire() # 獲取每個文件 for pfile in os.listdir(root_path): # 獲取文件的完整路徑 full_file_path = os.path.join(root_path, pfile) # 多線程讀寫文件 p = ThreadPool() # 執(zhí)行線程 p.apply_async(proxy2, args=(self, full_file_path,)) p.close() p.join() except Exception as e: print(e) finally: # 釋放線程鎖 lock.release() # 對每個文件夾下的每個文件進(jìn)行操作 def file_operation(self, full_file_path): try: // TODO 真正需要單獨(dú)執(zhí)行的操作 pass except Exception as e: print(e)
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Python多進(jìn)程與多線程的使用場景詳解
- Python之多進(jìn)程與多線程的使用
- python多線程和多進(jìn)程關(guān)系詳解
- Python 多進(jìn)程、多線程效率對比
- Python多線程多進(jìn)程實例對比解析
- Python全局鎖中如何合理運(yùn)用多線程(多進(jìn)程)
- python線程安全及多進(jìn)程多線程實現(xiàn)方法詳解
- Python實現(xiàn)多線程/多進(jìn)程的TCP服務(wù)器
- python多線程與多進(jìn)程及其區(qū)別詳解
- 處理python中多線程與多進(jìn)程中的數(shù)據(jù)共享問題
- python 多進(jìn)程和多線程使用詳解
相關(guān)文章
Python動態(tài)參數(shù)/命名空間/函數(shù)嵌套/global和nonlocal
這篇文章主要介紹了Python動態(tài)參數(shù)/命名空間/函數(shù)嵌套/global和nonlocal,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值 ,需要的朋友可以參考下2019-05-05Python使用自帶的ConfigParser模塊讀寫ini配置文件
這篇文章主要介紹了Python使用自帶的ConfigParser模塊讀寫ini配置文件的方法,ConfigParser中包含了對ini的節(jié)section的一些基本操作,使得改寫ini時非常簡便,需要的朋友可以參考下2016-06-06python基于Tkinter實現(xiàn)人員管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了python基于Tkinter實現(xiàn)人員管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-11-11python數(shù)據(jù)分析之將爬取的數(shù)據(jù)保存為csv格式
Python內(nèi)置了CSV模塊,可直接通過該模塊實現(xiàn)csv文件的讀寫操作,在web應(yīng)用中導(dǎo)出數(shù)據(jù)是比較常見操作,下面這篇文章主要給大家介紹了關(guān)于python數(shù)據(jù)分析之將爬取的數(shù)據(jù)保存為csv格式的相關(guān)資料,需要的朋友可以參考下2022-06-06Python PyQt5實現(xiàn)的簡易計算器功能示例
這篇文章主要介紹了Python PyQt5實現(xiàn)的簡易計算器功能,涉及Python PyQt5事件響應(yīng)及數(shù)學(xué)運(yùn)算等相關(guān)操作技巧,需要的朋友可以參考下2017-08-08Python中的np.vstack()和np.hstack()詳解
這篇文章主要介紹了np.vstack()和np.hstack(),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-04-04Python網(wǎng)絡(luò)編程之TCP與UDP協(xié)議套接字用法示例
這篇文章主要介紹了Python網(wǎng)絡(luò)編程之TCP與UDP協(xié)議套接字用法,結(jié)合實例形式較為詳細(xì)的分析了Python網(wǎng)絡(luò)編程中TCP與UDP協(xié)議客戶端、服務(wù)器端相關(guān)實現(xiàn)及使用技巧,需要的朋友可以參考下2018-02-02Python數(shù)據(jù)分析處理(三)--運(yùn)動員信息的分組與聚合
這篇文章主要介紹了Python數(shù)據(jù)清洗與處理?運(yùn)動員信息的分組與聚合,根據(jù)Python數(shù)據(jù)清洗與處理?的相關(guān)資料展開運(yùn)動員信息的分組與聚合的文章內(nèi)容,需要的朋友可以參考一下2021-12-12