Python 线程1阻塞,等到线程2结束,线程1继续运行
时间: 2023-11-28 15:38:59 浏览: 84
在Python中,你可以使用线程间的同步机制来实现线程1等待线程2结束后再继续运行。以下是使用`threading`模块中的`Event`对象来实现的示例代码:
```python
import threading
# 创建一个Event对象
event = threading.Event()
def thread1_func():
print("线程1开始运行")
print("线程1正在执行一些操作")
# 等待event被设置(默认为阻塞状态)
event.wait()
print("线程1继续运行")
def thread2_func():
print("线程2开始运行")
print("线程2正在执行一些操作")
# 模拟线程2的工作时间
time.sleep(5)
# 设置event,通知线程1可以继续运行
event.set()
print("线程2结束运行")
# 创建线程1和线程2
thread1 = threading.Thread(target=thread1_func)
thread2 = threading.Thread(target=thread2_func)
# 启动线程1和线程2
thread1.start()
thread2.start()
# 等待线程1和线程2结束
thread1.join()
thread2.join()
print("所有线程运行结束")
```
在上述示例中,线程1首先开始运行,并执行一些操作。然后,它调用`event.wait()`方法,此时线程1将被阻塞,等待`event`对象被设置。当线程2完成工作后,它调用`event.set()`方法,将`event`对象设置为已设置状态,此时线程1将继续运行。
请注意,这只是一种基本的同步机制示例,实际应用中可能需要根据具体情况进行适当的修改。
阅读全文