脚本运行后关闭MacOsx上的Python Process

时间:2014-01-14 20:01:04

标签: python macos multiprocessing

MacOSx上的这个2.7 Python脚本不会关闭Python进程。脚本之后 运行有8个休眠这样的过程。如何在脚本结束时关闭它们? *.terminate无效。

import multiprocessing
newlist = range(1,30)

ULs = [row for row in newlist]
print ULs

def ULtask(ul):
    print 1234

def start_process(): 
  print 'Start', multiprocessing.current_process().name

p_size      = multiprocessing.cpu_count() * 2
pool        = multiprocessing.Pool(processes=p_size, initializer=start_process, maxtasksperchild=400,)
pool_outputs= pool.map(ULtask, ULs)
pool.close() # no more tasks
pool.join()  # wrap up current tasks
# pool.terminate()

print 'Pool    :', pool_outputs
del pool
print "Finished  UL"

1 个答案:

答案 0 :(得分:0)

尝试此帖子的最后一个提示(python multiprocessing pool terminate)。看起来它终止于收盘和收盘之间。加入电话。

我在我的机器上尝试了一个简单的池(mac osx),并且只需关闭&加入电话,但终止没有伤害任何东西。看起来join会在池关闭或终止时终止进程(如果你尝试在没有关闭的情况下加入或在它之前终止,你可以从错误消息中看到这一点。)