我应该在start函数的所有函数调用中使用多处理吗?

时间:2013-11-21 09:25:07

标签: python multiprocessing

我不知道我是否明确表达了我的意图。欢迎你提出改进意见 让我们看看这个例子:
我希望我的网站A的用户可以采取一些措施来更改网站B中的某些数据 所以我模拟了站点B中的登录和两个动作。
这意味着当用户通过站点A帐户登录我的站点时,我应该发3个帖子。
我有三个功能:

def login(name,pwd):
    ....
    token = get_token(name,pwd)
    set_config(token)
    open_something(token)
    ....

def set_config(toekn):
    ....

def open_something(toekn):
    ....

我知道穿线,但我必须建立一个使用它的课程,这似乎有点不方便和没有优雅。 而且我知道互斥体,如下所示,但它似乎实际上只有一个线程一次运行。

def login(name,pwd):
    mutex.acquire()
    try:
        print('Do some stuff')
    finally:
        mutex.release()

所以我认为我必须使用多处理 我想知道如果我只是使用下面的代码它是否会工作。或者我应该如何编写代码?

def login(name,pwd):
    ....

if __name__ == '__main__':
    p = Process(target=login, args=(name,pwd))
    p.start()
    p.join()

1 个答案:

答案 0 :(得分:1)

if __name__ == '__main__':
    p = Process(target=login, args=(name,pwd))
    p.start()
    p.join()

应该有效。但它和

一样好
if __name__ == '__main__':
    p = Thread(target=login, args=(name,pwd))
    p.start()
    p.join()

一样好
if __name__ == '__main__':
    login(name, pwd)