以下是一个示例解决方案,使用Python的threading
库来实现并发任务确定性地生成伪随机数:
import threading
import random
# 用于存储生成的伪随机数的列表
random_numbers = []
# 用于控制并发任务的锁对象
lock = threading.Lock()
# 并发任务函数
def generate_random_numbers():
# 使用锁对象来确保每个线程访问共享资源时的互斥
with lock:
# 生成伪随机数并添加到列表中
random_number = random.randint(1, 100)
random_numbers.append(random_number)
# 创建并发任务的线程
threads = []
for _ in range(10):
thread = threading.Thread(target=generate_random_numbers)
threads.append(thread)
thread.start()
# 等待所有线程完成
for thread in threads:
thread.join()
# 打印生成的伪随机数列表
print(random_numbers)
上述代码使用了一个共享资源random_numbers
列表来存储生成的伪随机数。每个线程在生成伪随机数时,都会先获取一个锁对象lock
,以确保每个线程访问random_numbers
时的互斥。这样可以保证生成的伪随机数的确定性。
在代码中创建了10个并发任务的线程,并通过start()
方法启动它们。然后使用join()
方法等待所有线程完成执行。最后打印生成的伪随机数列表。