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

2024-11-01 16:29:02
推荐回答(5个)
回答1:

#下面是一个示例,我写了一个简单的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

回答2:

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()
----- 这个是用来代替缩进的,方便观看代码,使用的时候记得删除。

回答3:

什么意思呢?如果你是在要在循环体内创建多进程,每循环一次便增加一个进程,那么只需要把创建多进程的代码写入循环体内就好了,完全与在循环体外无任何区别。
如果你想要让整个循环创建的所有进程在执行时间上大致同步,那么我建议你先按循环长度创建好进程和管道或者队列,推荐队列,然后循环时将变量推送给不同的进程处理就行了。

回答4:

简单的如下

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()

回答5:

实现rannable接口的run方法