Python中的threading模块提供了简单的多线程编程支持。它可以让你创建线程,同步线程,设置线程优先级,以及更多的功能。
使用方法
我们需要导入threading模块:
import threading
我们可以使用threading模块中的Thread类来创建一个新线程:
thread = threading.Thread(target=func, args=(arg1, arg2))
其中,func是要执行的函数,args是要传递给func的参数,可以有多个参数。
我们可以使用start()方法来启动新创建的线程:
thread.start()
我们可以使用join()方法来等待线程结束:
thread.join()
除了Thread类之外,threading模块还提供了Lock,RLock,Semaphore,Condition,Event,Timer等类来实现多线程间的同步。
Lock类可以用来实现互斥锁,可以保证同一时刻只有一个线程执行特定的代码块。
lock = threading.Lock() lock.acquire() # 保护代码块 lock.release()
RLock类可以用来实现可重入的互斥锁,可以保证同一时刻只有一个线程执行特定的代码块,但是可以重复获取锁。
lock = threading.RLock() lock.acquire() # 保护代码块 lock.release()
Semaphore类可以用来控制访问某个资源的线程数量。
semaphore = threading.Semaphore(10) semaphore.acquire() # 访问资源 semaphore.release()
Condition类可以用来实现线程间的通信,可以让一个线程等待另一个线程的通知。
condition = threading.Condition() # 等待通知 condition.wait() # 发出通知 condition.notify()
Event类可以用来实现线程间的同步,可以让一个线程等待另一个线程的完成。
event = threading.Event() # 等待完成 event.wait() # 发出完成 event.set()
Timer类可以用来在指定的时间后执行代码,可以用来延迟代码的执行。
timer = threading.Timer(10, func, args=(arg1, arg2)) timer.start()
threading模块提供了很多有用的功能,可以用来实现多线程编程,可以极大地提高程序的效率。