python多进程并行代码实例

yipeiwu_com5年前Python基础

这篇文章主要介绍了python多进程并行代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

代码:

from multiprocessing import Process
import sys, os
import time


def timetask(string):
 while True:
  print(string)

def works(func, arg, worknum):
 proc_record = []
 for i in range(worknum):
  p = Process(target = func, args = (i,))
  p.start()
  proc_record.append(p)
 for p in proc_record:
  p.join()

if __name__ == '__main__':
 arg = 5
 procs = 4
 works(timetask, arg, procs)

效果图【未加锁,会发现数字1没出现,进程间资源抢夺导致】:

优化之后效果:

代码:

from multiprocessing import Process
import sys, os
import time
from threading import Lock


def timetask(string):
 mutex.acquire()
 while True:
  print(string)
  if mutex.locked():
   mutex.release()


mutex = Lock()

def works(func, arg, worknum):
 proc_record = []
 for i in range(worknum):
  p = Process(target = func, args = (i,))
  p.start()
  proc_record.append(p)
 for p in proc_record:
  p.join()

if __name__ == '__main__':
 arg = 5
 procs = 4
 works(timetask, arg, procs)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

详解配置Django的Celery异步之路踩坑

人生苦短,我用python。 看到这句话的时候,感觉可能确实是很深得人心,不过每每想学学,就又止步,年纪大了,感觉学什么东西都很慢,很难,精神啊注意力啊思维啊都跟不上。今天奶牛来分享自己...

python超简单解决约瑟夫环问题

本文实例讲述了python超简单解决约瑟夫环问题的方法。分享给大家供大家参考。具体分析如下: 约瑟环问题大家都熟悉。题目是这样的。一共有三十个人,从1-30依次编号。每次隔9个人就踢出去...

Python 2.x如何设置命令执行的超时时间实例

前言 在Python2.x中的几个用来执行命令行的库或函数在执行命令是均不能设置一个命令执行的超时时间,用来在命令执行时间超时时终端这个命令的执行,这个功能在3.x(?)中解决了,但是在...

Python基于QRCode实现生成二维码的方法【下载,安装,调用等】

本文实例讲述了Python基于QRCode实现生成二维码的方法。分享给大家供大家参考,具体如下: QR码是一种矩阵码,或二维空间的条码,1994年由日本Denso-Wave公司发明。QR...

python字典setdefault方法和get方法使用实例

这篇文章主要介绍了python字典setdefault方法和get方法使用实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在pyt...