python删除进程id_Python多处理进程ID

我在用多处理.池运行不同的流程(例如4个流程),我需要标识每个流程,以便在每个流程中执行不同的操作。在

当我在while循环中运行池时,对于第一次迭代,我可以知道每个进程的ID,但是对于第二次和更多的迭代,这个ID会发生变化,或者至少我找不到一个在所有迭代中对每个进程都相同的属性。在

规范的相关部分如下:while i <= maxiter:

print('\n' + 'Iteration: %r'%i + '\n')

pool = mp.Pool(processes = numprocs)

swarm = pool.map_async(partial(proxy, costf = costFunc, i=i),Swarm)

pool.close()

pool.join()

Swarm = swarm.get()

我尝试使用以下属性正确标识进程,但它对我无效:

^{pr2}$

这样,输出为:Iteration: 1

Process-2:1

Process-1:1

ForkPoolWorker-1

ForkPoolWorker-2

Process-3:1

ForkPoolWorker-3

Process-2:2

ForkPoolWorker-2

Process-3:2

Process-2:3

ForkPoolWorker-3

ForkPoolWorker-2

Process-1:2

ForkPoolWorker-1

Process-4:1

Process-3:3

ForkPoolWorker-4

ForkPoolWorker-3

Process-2:4

ForkPoolWorker-2

Iteration: 2

Process-5:1

ForkPoolWorker-5

Process-5:2

Process-7:1

ForkPoolWorker-7

Process-6:1

ForkPoolWorker-5

ForkPoolWorker-6

Process-5:3

ForkPoolWorker-5

Process-7:2

ForkPoolWorker-7

Process-5:4

ForkPoolWorker-5

Process-6:2

ForkPoolWorker-6

Process-7:3

ForkPoolWorker-7

Process-8:1

ForkPoolWorker-8

你知道我如何每次都用同样的方式识别每个过程吗?在

编辑1:

我已经将程序简化为这样,但想法是一样的:import random, numpy as np,time

import multiprocessing as mp

def costFunc(i):

print(mp.current_process().name,mp.Process().name)

return i*1

class PSO():

def __init__(self,maxiter,numprocs):

# Begin optimization Loop

i = 1

self.Evol = []

while i <= maxiter:

print('\n' + 'Iteration: %r'%i + '\n')

pool = mp.Pool(processes = numprocs)

swarm = pool.map_async(costFunc,(i,))

pool.close()

pool.join()

Swarm = swarm.get()

i += 1

if __name__ == "__main__":

#mp.set_start_method('spawn')

PSO(10,1)

输出:Iteration: 1

ForkPoolWorker-1 Process-1:1

Iteration: 2

ForkPoolWorker-2 Process-2:1

Iteration: 3

ForkPoolWorker-3 Process-3:1

Iteration: 4

ForkPoolWorker-4 Process-4:1

Iteration: 5

ForkPoolWorker-5 Process-5:1

Iteration: 6

ForkPoolWorker-6 Process-6:1

Iteration: 7

ForkPoolWorker-7 Process-7:1

Iteration: 8

ForkPoolWorker-8 Process-8:1

Iteration: 9

ForkPoolWorker-9 Process-9:1

Iteration: 10

ForkPoolWorker-10 Process-10:1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值