一个for循环的Python脚本程序中如何加入多进程(并发进程)呢,急急急,在线等?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个for循环的Python脚本程序中如何加入多进程(并发进程)呢,急急急,在线等?相关的知识,希望对你有一定的参考价值。

#下面是一个示例,我写了一个简单的for循环,并加入了多线程并发。
# -*- coding:utf-8 -*-
import thread,threading

#Test Function
def ForTest():
    for i in range(10):
        print i
        
class mythread(threading.Thread):
    def __init__(self,threadname):
        threading.Thread.__init__(self)
    def run(self):
        lock.acquire() 
        for j in xrange(int(times)):
            #Add Own Fuction Here
            ForTest()
        lock.release()
        
def MutiThread(num,times):
    threads=[]
    global ft
    for x in xrange(num):
        threads.append(mythread(num))
    for t in threads:
        lock.acquire()
        t.start() 
        lock.release()
    for t in threads:
        t.join()
if __name__ == '__main__':
    global num,times,lock
    
    num=2       #num 并发数
    times=2     #times 运行次数
    
    lock=threading.Lock()
    MutiThread(num,times)

运行结果:

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

参考技术A from multiprocessing import Process
#用这个list 保存进程
p_list = list()
# 先一起定义好,放到一个list里面
for i in range(100):
-----p1 = Process(target=目标函数, name='名字')
-----p_list .append(p1)
# 批量启动
for p in p_list:
-----p.daemon = True
-----p.start()
----- 这个是用来代替缩进的,方便观看代码,使用的时候记得删除。
参考技术B 什么意思呢?如果你是在要在循环体内创建多进程,每循环一次便增加一个进程,那么只需要把创建多进程的代码写入循环体内就好了,完全与在循环体外无任何区别。
如果你想要让整个循环创建的所有进程在执行时间上大致同步,那么我建议你先按循环长度创建好进程和管道或者队列,推荐队列,然后循环时将变量推送给不同的进程处理就行了。
参考技术C

简单的如下

from multiprocessing import Process
def ps(i):
print(str(i))
def run():
for i in range(5):
Process(target=ps, args=(i, )).start()
if __name__ == "__main__":
    run()

参考技术D 实现rannable接口的run方法

以上是关于一个for循环的Python脚本程序中如何加入多进程(并发进程)呢,急急急,在线等?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用'for'循环将新变量传递给python脚本

当 for 循环中不匹配时退出 python 脚本

求解python如何通过for循环将字符串的值放到一个列表中

如何在 Python Impala 中编写 FOR 循环?

尝试在 Python 的 for 循环中调用矩阵的元素

shell脚本的常用循环