Python线程threading(Thread类)完整攻略
什么是线程
在计算机科学中,线程是操作系统能够进行运算调度的最小单位。一个线程就是进程中一个单一的顺序控制流程。
线程的特点
线程与进程不同,线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他线程共享进程所拥有的全部资源。一个线程可以创建和撤销另一个线程,同一进程中的多个线程之间可以并发执行。
Python线程模块
Python中的线程有两种方式实现:Thread类和函数。在本篇攻略中,我们将主要介绍Thread类的实现方式。
Thread类
Thread类是Python中用于创建和管理线程的标准类。它定义了创建、分配和执行线程的标准接口。Python程序通过实例化Thread类来创建线程。
语法
以下为Thread类的语法:
class threading.Thread(group=None, target=None, name=None, args=(), kwargs={}, *, daemon=None)
参数说明
- group:线程组,目前还没用,库引入时值为None。
- target:线程执行的函数。
- name:线程的名称。
- args:要传入target函数的参数列表。
- kwargs:要传入target函数的关键词参数。
- daemon:布尔值,表示守护线程(True)还是前台线程(False),默认为前台线程。
Thread类的方法
Thread类还提供了以下一些常用的方法:
- run():在线程内执行该方法即可启动该线程对象。
- start():启动线程,会运行到该线程实例的run()方法。
- join([time]):等待该线程执行完毕。
- setDaemon(bool):将线程标识为守护线程或是前台线程,默认是前台线程。
示例一
以下为一个简单的Thread类的示例,用来执行一个简单的函数:
import threading
def print_hello():
print("Hello, World! from thread.")
t = threading.Thread(target=print_hello)
t.start()
执行后,将会输出:
Hello, World! from thread.
示例二
以下示例通过创建10个线程并行执行任务,来展示Thread类的并行执行能力:
import threading
def print_hello(index):
print("Hello, World! from thread " + str(index) + ".")
threads = []
for i in range(10):
t = threading.Thread(target=print_hello, args=(i,))
threads.append(t)
t.start()
for t in threads:
t.join()
执行后,将会输出:
Hello, World! from thread 0.
Hello, World! from thread 1.
Hello, World! from thread 2.
Hello, World! from thread 3.
Hello, World! from thread 4.
Hello, World! from thread 5.
Hello, World! from thread 6.
Hello, World! from thread 7.
Hello, World! from thread 8.
Hello, World! from thread 9.
看到这些输出,我们可以很清晰地看到每个线程并行地执行了打印函数。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python线程threading(Thread类) - Python技术站