编写一个程序,创建两个线程,并使用互斥锁实现线程之间的同步。一个线程负责打印1到50的奇数,另一个线程负责打印1到50的偶数,要求奇数和偶数交替打印。
时间: 2024-10-10 19:07:46 浏览: 33
要在Python中创建这样的程序,我们可以使用内置的`threading`模块以及`threading.Lock`来实现线程同步。下面是一个示例代码:
```python
import threading
class OddThread(threading.Thread):
def __init__(self, lock, *args, **kwargs):
super().__init__(*args, **kwargs)
self.lock = lock
def run(self):
for i in range(1, 51, 2):
with self.lock:
print(f"Odd number {i}")
# 释放锁,允许下一个线程打印
self.lock.release()
class EvenThread(threading.Thread):
def __init__(self, lock, *args, **kwargs):
super().__init__(*args, **kwargs)
self.lock = lock
def run(self):
for i in range(2, 51, 2):
with self.lock:
print(f"Even number {i}")
# 释放锁
self.lock.release()
# 创建互斥锁
lock = threading.Lock()
odd_thread = OddThread(lock)
even_thread = EvenThread(lock)
# 启动线程
odd_thread.start()
even_thread.start()
# 等待两个线程完成
odd_thread.join()
even_thread.join()
阅读全文