以下是一些常用的Python threading
库的API:
-
Thread
类:Thread
类是创建和管理线程的主要类。可以通过继承Thread
类或传递一个可调用对象给Thread
类来创建新线程。import threading def my_function(): # 线程要执行的代码 # 创建线程对象 thread = threading.Thread(target=my_function) # 启动线程 thread.start() # 等待线程执行结束 thread.join()
-
Lock
类:Lock
类提供了互斥锁(Lock)的实现,用于在多个线程之间保护共享资源的访问。import threading # 创建互斥锁对象 lock = threading.Lock() # 在需要保护共享资源的代码块中使用锁 lock.acquire() # 临界区代码 lock.release()
-
RLock
类:RLock
类是可重入锁(Reentrant Lock),也称为递归锁。它允许同一线程多次获取锁,但在释放锁之前必须相应释放相同次数的锁。import threading # 创建可重入锁对象 rlock = threading.RLock() # 在需要保护共享资源的代码块中使用可重入锁 rlock.acquire() # 临界区代码 rlock.release()
-
Condition
类:Condition
类提供了条件锁(Condition)的实现,用于线程间的等待和通知机制。import threading # 创建条件锁对象 condition = threading.Condition() # 线程等待条件 condition.acquire() while not condition_predicate: condition.wait() # 执行临界区代码 condition.release() # 线程通知条件 condition.acquire() condition_predicate = True condition.notify() condition.release()
-
Semaphore
类:Semaphore
类是信号量(Semaphore)的实现,用于控制同时访问某个资源的线程数量。import threading # 创建信号量对象 semaphore = threading.Semaphore(value) # 在需要保护共享资源的代码块中使用信号量 semaphore.acquire() # 临界区代码 semaphore.release()