操作系统线程的同步实验代码
时间: 2024-10-11 13:05:54 浏览: 25
操作系统线程同步通常涉及互斥量(mutex)、条件变量(condition_variable)或者信号量(semaphore)等同步机制。这里给出一个简单的Python示例,使用`threading`模块来演示线程间的同步:
```python
import threading
import time
# 共享资源
counter = 0
lock = threading.Lock()
def increment_counter():
global counter
while True:
lock.acquire() # 获取锁
try:
if counter < 5:
counter += 1
print(f"Thread {threading.current_thread().name}: Counter is now {counter}")
else:
print(f"Thread {threading.current_thread().name}: Skipping as counter reached limit")
lock.release() # 释放锁
time.sleep(1) # 等待一段时间再尝试
except Exception as e:
print(f"Thread {threading.current_thread().name} encountered an error: {e}")
threads = [threading.Thread(target=increment_counter) for _ in range(3)]
for thread in threads:
thread.start()
for thread in threads:
thread.join() # 确保所有线程执行完毕
阅读全文