Gos*_*dow 14 python multithreading
所以,我首先要说这是一个家庭作业问题.我的教授给了我们一个作业,必须用Java编写一次,用另一种语言写一次; 我选择第二语言是Python,因为我至少对它有点熟悉.该计划必须以下列方式运作:
启动我们称之为parent的main方法/线程.
从父级启动线程子1
从线程子1开始线程孙子
从父级启动线程子2
从孙子线程中打印孙子
从孩子2线程打印孩子2
从孩子1个线程打印孩子1
从main方法/父线程中打印父级
这些事情必须按此顺序完成.我编写了使用CountDownLatch在Java中执行此操作的代码,以便组织这些事情发生的方式.但是,我没有在Python中看到类似的机制(虽然我对Python不熟悉而不是Java).有没有类似的机制可能我找不到,因为我不知道它叫什么?
小智 20
你可以使用threading.Condition实现CountDownLatch,如下所示:
import threading
class CountDownLatch(object):
def __init__(self, count=1):
self.count = count
self.lock = threading.Condition()
def count_down(self):
self.lock.acquire()
self.count -= 1
if self.count <= 0:
self.lock.notifyAll()
self.lock.release()
def await(self):
self.lock.acquire()
while self.count > 0:
self.lock.wait()
self.lock.release()
Run Code Online (Sandbox Code Playgroud)