使用偶数和奇数函数同步两个线程可以通过以下步骤实现:
下面是一个示例代码:
import threading
# 共享资源
shared_data = 0
# 创建互斥锁
mutex = threading.Lock()
# 偶数函数
def even_func():
global shared_data
for i in range(10):
mutex.acquire() # 获取互斥锁
if shared_data % 2 == 0:
print("Even Thread:", shared_data)
shared_data += 1
mutex.release() # 释放互斥锁
# 奇数函数
def odd_func():
global shared_data
for i in range(10):
mutex.acquire() # 获取互斥锁
if shared_data % 2 != 0:
print("Odd Thread:", shared_data)
shared_data += 1
mutex.release() # 释放互斥锁
# 创建并启动两个线程
even_thread = threading.Thread(target=even_func)
odd_thread = threading.Thread(target=odd_func)
even_thread.start()
odd_thread.start()
# 等待两个线程执行完毕
even_thread.join()
odd_thread.join()
这段代码创建了两个线程,一个执行偶数函数,另一个执行奇数函数。通过互斥锁的使用,确保了在每次访问共享资源时只有一个线程能够进行操作,从而实现了两个线程的同步。
请注意,以上示例代码仅为演示如何使用偶数和奇数函数同步两个线程,并不涉及任何特定的云计算技术或产品。
领取专属 10元无门槛券
手把手带您无忧上云