Python2.7實(shí)現(xiàn)多進(jìn)程下開發(fā)多線程示例
更新時(shí)間:2019年05月31日 09:36:40 作者:CarolLXW
這篇文章主要為大家詳細(xì)介紹了Python2.7實(shí)現(xiàn)多進(jìn)程下開發(fā)多線程示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
簡單的基于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ù)末尾必須加上逗號(hào)
p.apply_async(proxy, args=(self, self.root_path,))
p.close()
p.join()
except Exception as e:
print(e)
# 每個(gè)進(jìn)程下的多線程執(zhí)行,線程數(shù)等于當(dāng)前機(jī)器的核數(shù)
def multiprocess_thread(self, root_path):
try:
# 創(chuàng)建線程鎖
lock = threading.RLock()
lock.acquire()
# 獲取每個(gè)文件
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()
# 對(duì)每個(gè)文件夾下的每個(gè)文件進(jìn)行操作
def file_operation(self, full_file_path):
try:
// TODO 真正需要單獨(dú)執(zhí)行的操作
pass
except Exception as e:
print(e)
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- Python多進(jìn)程與多線程的使用場景詳解
- Python之多進(jìn)程與多線程的使用
- python多線程和多進(jìn)程關(guān)系詳解
- Python 多進(jìn)程、多線程效率對(duì)比
- Python多線程多進(jìn)程實(shí)例對(duì)比解析
- Python全局鎖中如何合理運(yùn)用多線程(多進(jìn)程)
- python線程安全及多進(jìn)程多線程實(shí)現(xiàn)方法詳解
- Python實(shí)現(xiàn)多線程/多進(jìn)程的TCP服務(wù)器
- python多線程與多進(jìn)程及其區(qū)別詳解
- 處理python中多線程與多進(jìn)程中的數(shù)據(jù)共享問題
- python 多進(jìn)程和多線程使用詳解
相關(guān)文章
Python實(shí)現(xiàn)自動(dòng)化網(wǎng)頁操作步驟
這篇文章主要介紹Python如何實(shí)現(xiàn)自動(dòng)化網(wǎng)頁操作,文中有詳細(xì)的流程步驟和代碼示例,對(duì)我們的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2023-06-06
Python操作Excel文件的11種方法(全網(wǎng)最全)
在日常工作或開發(fā)過程中,Excel文件作為一種常用的數(shù)據(jù)存儲(chǔ)格式,其高效便捷的數(shù)據(jù)處理能力被廣泛應(yīng)用于數(shù)據(jù)統(tǒng)計(jì)、數(shù)據(jù)分析等領(lǐng)域,Python作為一種強(qiáng)大的編程語言,提供了豐富的庫支持來實(shí)現(xiàn)對(duì)Excel文件的操作,本篇將詳細(xì)介紹如何使用Python來操作Excel文件2025-03-03
Python動(dòng)態(tài)規(guī)劃實(shí)現(xiàn)虛擬機(jī)部署的算法思想
這篇文章主要介紹了Python動(dòng)態(tài)規(guī)劃實(shí)現(xiàn)虛擬機(jī)部署的算法思想,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-07-07

