对如何实现线程/多处理感到困惑

时间:2014-08-03 01:57:41

标签: python multithreading queue multiprocessing

我有一个创建和激活同步客户端的功能,然后连接到Exchange服务器并从邮箱中检索电子邮件。用户编号如下:

user-0@example.com
.
.
.
user-25@example.com

我可以使用for循环:

for x in range(0, 25):
    email_function(x)

我想同时做多个用户,不知道我是否应该使用线程或进程。

我尝试了这段代码并运行:

def mp_run(m):
    email_actions(m)
    return

if __name__ == '__main__':
    operation_time = time.clock()
    jobs = []
    for m in range(25):
        p = multiprocessing.Process(target=mp_run(m), args=(m,))
        jobs.append(p)
        p.start()

但是使用进程资源管理器,我只看到一个线程。

1 个答案:

答案 0 :(得分:2)

执行此操作时:

target=mp_run(m)

您事先调用mp_run函数,并将target设置为None(函数的返回值)。由于None的目标不是函数,因此不会启动任何新线程(并且没有任何反应)。将其更改为:

target=mp_run