python多进程运行死机_python中的多进程程序在运行一段时间后似乎变得很慢

作者分享了使用Python编写多进程程序时遇到的性能问题,尤其是在运行一段时间后速度减缓。探讨了全局解释器锁的影响,并询问是否代码存在问题或Python有固有限制。尝试了Cython但未解决问题。寻求解答优化策略或Python内在优化技巧。
摘要由CSDN通过智能技术生成

我用python编写了一个多处理程序。具体说明如下:nodes = multiprocessing.Manager().list()

lock = multiprocess.Lock()

def get_elems(node):

#get elements by send requests

def worker():

lock.acquire()

node = nodes.pop(0)

lock.release()

elems = get_elems(node)

lock.acquire()

for elem in elems:

nodes.append(node)

lock.release()

if __name__ == "__main__":

node = {"name":"name", "group":0}

nodes.append(node)

processes = [None for i in xrange(10)]

for i in xrange(10):

processes[i] = multiprocessing.Process(target=worker)

processes[i].start()

for i in xrange(10):

processes[i].join()

在程序开始运行时,似乎一切正常。跑了一会儿之后。放慢程序的速度。使用多线程时也存在这种现象。我看到Python中有一个全局解释器锁,所以我改为多处理。但仍有这种现象。完整的代码在here中。我试过Cython,还有这个现象。我的代码有问题吗?或者说python中是否存在与生俱来的缺陷呢?在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值