【问题标题】:confused on how to implement threading/multi-processing对如何实现线程/多处理感到困惑
【发布时间】:2014-08-03 01:57:40
【问题描述】:

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

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

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

【问题讨论】:

  • 顺便说一句,我认为您的声明 for x in range(0, 25): 最多只能为您提供 24 个地址。所以user-25@example.com 将被遗漏。

标签: python multithreading queue multiprocessing


【解决方案1】:

当你这样做时:

target=mp_run(m)

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

target=mp_run

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-22
    • 1970-01-01
    • 2021-02-04
    • 1970-01-01
    • 1970-01-01
    • 2018-09-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多