在python 中如果通过多线程的方式执行某个方法很简单,只需要把同步函数的第一个参数为该函数对象即可。但是如果函数对象是某个类的静态方法,这时候如果直接使用类的该函数对象会报错。此时需要构造一个代理的方法来实现。

如:上一个博文中的统计目录大小的静态类方法,如果想要查询多目录的空间大小,并且做成多线程个的方式。可采用下面的方法:

def dir_size_proxy(cls_instance, i):return cls_instance.get_dir_size(i)class DiskSpaceUtil(object):@staticmethoddef get_dir_list_size(dir_path_list):import multiprocessingpool = multiprocessing.Pool(processes=8)result_list = []for dir_path in dir_path_list:result_list.append(pool.apply_async(dir_size_proxy, (DiskSpaceUtil, dir_path)))pool.close()pool.join()size_list = [result.get() for result in result_list]return size_list

如图:

同步方法 DiskSpaceUtil 类中的 get_dir_size 方法。

代理函数: dir_size_proxy

转载于:https://www.cnblogs.com/dasheng-maritime/p/8365409.html

python多线程执行类中的静态方法相关推荐

  1. Python(私有变量)类中的特殊方法

    2019独角兽企业重金招聘Python工程师标准>>> 类中的特殊方法 一般说来,特殊的方法都被用来模仿某个行为.例如,如果你想要为你的类使用x[key]这样的索引操作(就像列表和元 ...

  2. php类使用自己的静态方法吗,php在类中使用静态方法有几种方式

    php在类中使用静态方法的方式:1.使用self,代码为[self::test();]:2.使用类名,代码为[public function test1()a::test()]:3.使用static, ...

  3. python多线程执行_python多线程实现同时执行两个while循环

    如果想同时执行两个while True循环,可以使用多线程threading来实现. 完整代码 #coding=gbk from time import sleep, ctime import thr ...

  4. python多线程执行同样代码_Python 多线程、多进程 (一)之 源码执行流程、GIL

    一.python程序的运行原理 许多时候,在执行一个python文件的时候,会发现在同一目录下会出现一个__pyc__文件夹(python3)或者.pyc后缀(python2)的文件 Python在执 ...

  5. java 静态类的实现_关于java:在类中实现静态方法

    通过一本书,我正在经历: "设计一个类名MyInteger.该类包含: ...等等等等等等... 如果此对象中的值分别为偶数,奇数或素数,则方法isEven(),isOdd()和isPrim ...

  6. php类实例方法静态方法,PHP类中的静态方法使用实例

    在php中静态方法我们就直接在函数或变量前加一个static就可以了,使用的时候和静态变量差不多,不需要实例化,直接用::调用了,下面我来给大家举几个关于静态方法实例. PHP也不例外!所谓静态方法( ...

  7. php 反射 调用私有方法,PHP通过反射方法调用执行类中的私有方法

    PHP 5 具有完整的反射 API,添加了对类.接口.函数.方法和扩展进行反向工程的能力. 下面我们演示一下如何通过反射,来调用执行一个类中的私有方法: //MyClass这个类中包含了一个名为myF ...

  8. python语法:类中object的用法

    假如定义两个类,一个带object,一个不带object,会不会有差别呢? class Cat:name = "mao" class Dog(object):name = &quo ...

  9. python的class(类)中的object是什么意思?

    原文地址:https://blog.csdn.net/DeepOscar/article/details/80947155 那写object和不写object有什么区别? 好的,再用代码来理解它们的区 ...

最新文章

  1. [笔记]C#基础入门(十四)——C#用流程图描述程序逻辑
  2. 为什么测试喜欢ie_为什么我现在喜欢测试,以及为什么您也应该如此。
  3. 第六章:react-router4
  4. 数据库:跨数据库,服务器数据迁移
  5. 计算机网络技术与应用应用题,计算机网络技术与应用题库答案.pdf
  6. python 编程(关于twisted)
  7. ctfshow-网络迷踪-新手上路 ( 使用百度搜图收集景点信息)
  8. 使用 CSS3 实现 3D 图片滑块效果
  9. 《WF编程》系列之23 - 基本活动:IfElseActivity WhileActivity SequenceActivity
  10. go 变量大写_golang学习笔记(一):包,变量,函数
  11. 正确激活报表插件的方法
  12. React小书没提到但是很有用的基础知识
  13. 一篇文章带你搞定数学建模中的 Malthus人口模型(含代码)
  14. python生成3d人体模型_无限想象空间,用Python就能玩的3D人体姿态估计
  15. 虚拟机如何安装Deepin系统
  16. 关于代付和分账系统的区别
  17. docker以外的构建、运行、管理和分发容器候选项
  18. (附源码)ssm通用数据展示系统 毕业设计200934
  19. IE、FF、Safari、OP不同浏览器兼容报告
  20. 验证手机号码格式的正则表达式编写思路详解

热门文章

  1. JAVA环境变量配置与配置后CMD的使用
  2. centos6.5 php5.2,Linux中PHP安装与配置(CentOS-6.5:php-5.2.13)
  3. 线性回归、逻辑回归及SVM
  4. matepad和鸿蒙,爆料称华为MatePad 2系列平板有三个版本:预装鸿蒙OS
  5. stringbuilder 拼接语句缺失右括号_Leetcode No.22 括号生成
  6. 弹性网络_理论物理所建立解析模型研究凝胶网络弹性介导的液液相分离现象
  7. LINUX进程调度分析源码,Linux 实时调度(源码分析)
  8. java三角形创建子类_如何创建子类,以便参数属于Java中的子类类型
  9. 基于熵权法优劣解距离法_维普资讯中文期刊服务平台-基于改进TOPSIS方法的航空装备预研项目技术风险评估...
  10. 华为机考HJ4字符串分隔C语言题解