threading.Thread 等待线程结束
时间: 2023-07-30 16:05:16 浏览: 127
判断Threading.start新线程是否执行完毕的实例
在Python中,可以使用`threading.Thread`的`join()`方法来等待子线程结束。`join()`方法的作用是阻塞当前线程,直到调用该方法的线程结束为止。如果子线程已经结束,则`join()`方法会立即返回。如果子线程还没有结束,则`join()`方法会一直阻塞,直到子线程结束为止。
下面是一个简单的示例,演示了如何使用`join()`方法等待子线程结束:
```python
import threading
def my_func():
print("子线程开始执行...")
# 子线程要执行的操作
print("子线程执行完毕。")
t = threading.Thread(target=my_func)
t.start()
# 等待子线程结束
t.join()
print("主线程执行完毕。")
```
在上面的示例中,我们创建了一个名为`t`的子线程,将`my_func()`函数作为其`target`参数。然后,我们调用子线程的`start()`方法,启动该子线程。接着,我们调用`join()`方法,等待子线程结束。当子线程执行完毕后,`join()`方法会返回,主线程继续执行,输出`主线程执行完毕。`。
需要注意的是,如果子线程永远不会结束或者在等待子线程结束时发生了异常,`join()`方法会一直阻塞当前线程,程序会一直卡在那里。因此,在使用`join()`方法时,应该谨慎处理异常情况,以避免程序无法正常退出。
阅读全文