什么是线程,以及如何创建和控制线程?
时间: 2024-03-14 17:46:45 浏览: 30
线程是指进程中独立运行的子任务,它可以被看作是进程中的一个实体,是 CPU 调度和分派的基本单位。线程共享进程的内存空间和系统资源,每个线程都有独立的栈空间,用于保存线程的上下文和局部变量等信息。
在 Python 中,可以使用 threading 模块创建和控制线程。使用 threading 模块创建线程的方法有两种,一种是继承 threading.Thread 类并重写 run 方法,另一种是创建一个 threading.Thread 类的实例并传入一个可调用对象。
下面是使用继承 threading.Thread 类创建线程的示例代码:
```
import threading
class MyThread(threading.Thread):
def run(self):
# 线程执行的代码
pass
# 创建线程实例并启动
t = MyThread()
t.start()
```
下面是使用创建 threading.Thread 类的实例并传入一个可调用对象创建线程的示例代码:
```
import threading
def my_func():
# 线程执行的代码
pass
# 创建线程实例并启动
t = threading.Thread(target=my_func)
t.start()
```
控制线程可以使用 threading 模块提供的一些方法,如 join、is_alive、setDaemon 等方法。其中,join 方法用于等待线程结束;is_alive 方法用于判断线程是否存活;setDaemon 方法用于设置线程为守护线程,即当主线程结束时,守护线程也会随之结束。
```
t = threading.Thread(target=my_func)
t.start()
# 等待线程结束
t.join()
# 判断线程是否存活
if t.is_alive():
pass
# 设置线程为守护线程
t.setDaemon(True)
```