在 Python 中,启动线程涉及使用 threading 模块中的 Thread 类提供的 start() 方法。此方法启动线程的活动,并在单独的执行线程中自动调用其 run() 方法。这意味着,当您在每个线程对象(例如 thread1、thread2、thread3)上调用 start() 以启动它们的执行时。
Python 启动单独的线程,这些线程并发执行每个 Thread 实例中定义的 run() 方法。主线程在启动子线程后继续执行。
在本教程中,您将看到有关如何在多线程编程中有效使用 start() 方法的详细说明和示例,以了解其在多线程应用程序中的行为。
在 Python 中启动线程
start() 方法是开始执行线程的基础。它设置线程的环境并安排它运行。重要的是,每个 Thread 对象只应调用一次。如果对同一个 Thread 对象多次调用此方法,它将引发 RuntimeError。
这是在 Thread 对象上使用 start() 方法的语法 -
例
让我们看看下面的示例,它演示了如何使用 start() 方法在 Python 中启动新线程。
执行上述代码时,它会产生以下结果 -
child Thread running 0
thread finished...exiting
child Thread running 1
child Thread running 2
child Thread running 3
child Thread running 4
child Thread running 5
child Thread running 6
child Thread running 7
child Thread running 8
child Thread running 9
thread finished...exiting
child Thread running 1
child Thread running 2
child Thread running 3
child Thread running 4
child Thread running 5
child Thread running 6
child Thread running 7
child Thread running 8
child Thread running 9
例
这是另一个演示 start() 方法工作的例子。您可以观察到,如果不在 thread2 上调用 start() 方法,它将保持非活动状态并且不会开始执行。
上面的代码将生成以下输出 -
Starting Thread-1
Starting Thread-3
Exiting Main Thread
Thread-1: Mon Jun 24 18:24:59 2024
Exiting Thread-1
Thread-3: Mon Jun 24 18:24:59 2024
Thread-3: Mon Jun 24 18:25:00 2024
Thread-3: Mon Jun 24 18:25:01 2024
Exiting Thread-3
Starting Thread-3
Exiting Main Thread
Thread-1: Mon Jun 24 18:24:59 2024
Exiting Thread-1
Thread-3: Mon Jun 24 18:24:59 2024
Thread-3: Mon Jun 24 18:25:00 2024
Thread-3: Mon Jun 24 18:25:01 2024
Exiting Thread-3