Python:跨功能线程

时间:2017-08-06 13:49:20

标签: python multithreading python-2.7 python-3.x python-multithreading

有没有人知道获取锁定的方法,这样不仅可以锁定被调用函数,还可以锁定其他函数。

让我说我有一堆函数(a(),b(),c())当我调用函数a()时我也想函数b()& c()被锁定。

import threading
from time import sleep

def a():
    for i in range(5):
        print(i)
        sleep(1)

def b():
    for i in range(5):
        print(i)
        sleep(1)

def c():
    for i in range(5):
        print(i)
        sleep(1)

thread_a=threading.Thread(target=a)
thread_a.start()
thread_b=threading.Thread(target=b)
thread_b.start()
thread_c=threading.Thread(target=c)
thread_c.start()

如果我想让上面的代码给出输出,我将如何使用锁:

0
1
2
3
4
0
1
2
3
4
0
1
2
3
4

任何帮助表示赞赏, 格尔茨

1 个答案:

答案 0 :(得分:0)

您必须以某种方式使用您的函数之间共享的相同Lock实例。

lock = threading.Lock()

def a():
    with lock:
        for i in range(5):
            print(i)
            sleep(1)

为每个功能执行此操作,它将输出您想要的内容。