在Python中,可以使用互斥锁(Lock)来解决互斥访问问题。互斥锁是一种线程同步的机制,它可以保证在同一时刻只有一个线程能够访问共享资源。
下面是一个使用互斥锁解决互斥访问问题的示例代码:
import threading # 创建一个互斥锁对象 lock = threading.Lock() # 共享资源 shared_data = 0 def worker(): global shared_data # 获取互斥锁 lock.acquire() try: # 对共享资源进行操作 shared_data += 1 finally: # 释放互斥锁 lock.release() # 创建多个线程并启动 threads = [] for _ in range(10): t = threading.Thread(target=worker) t.start() threads.append(t) # 等待所有线程执行完成 for t in threads: t.join() # 输出共享资源的结果 print(shared_data) 在上面的代码中,我们首先创建了一个互斥锁对象(lock = threading.Lock())。然后,在每个线程中,我们先调用lock.acquire()方法获取互斥锁,然后对共享资源进行操作,最后再调用lock.release()方法释放互斥锁。
通过使用互斥锁,可以保证在同一时刻只有一个线程能够访问共享资源,从而避免了多个线程之间的竞争条件,确保了共享资源的正确性。