Python3中的线程通过threading
模块实现。以下是一些线程的基本知识和示例:
- 创建线程:
import threading
# 定义线程函数
def worker():
print('Thread running')
# 创建线程对象
t = threading.Thread(target=worker)
# 启动线程
t.start()
- 传递参数给线程:
import threading
# 定义线程函数,传入一个参数
def worker(num):
print(f'Thread-{num} running')
# 创建线程对象,传入不同的参数
t1 = threading.Thread(target=worker, args=(1,)) # args传递的必须是元组
t2 = threading.Thread(target=worker, args=(2,))
# 启动线程
t1.start()
t2.start()
- 线程同步:
import threading
# 定义全局变量和锁对象
counter = 0
lock = threading.Lock()
# 定义线程函数
def worker():
global counter
for i in range(1000000):
# 获取锁
with lock:
# 对共享变量进行操作
counter += 1
# 创建线程对象
t1 = threading.Thread(target=worker)
t2 = threading.Thread(target=worker)
# 启动线程
t1.start()
t2.start()
# 等待所有线程完成
t1.join()
t2.join()
# 输出计数器的值
print(f'Counter value: {counter}')
上面的代码会导致计数器不准确,因为两个线程同时对计数器进行操作。可以使用锁来解决这个问题。
- 定时器:
import threading
# 定义线程函数
def worker():
print('Thread running')
# 创建定时器对象,设置5秒后启动线程
t = threading.Timer(5, worker)
# 启动定时器
t.start()
上面的代码会在5秒后启动线程,并执行worker
函数。
这些是Python中线程的一些基本知识和示例。注释说明了每个步骤的作用和原理。