1.得到一个随机的整数n,创建n个子线程对象; 2.要求在子线程中把当前线程的名称作为元素添加一个集合中; 3.当n个线程的名称都添加到集合中,遍历集合打印每个线程的名称;
时间: 2023-06-11 17:10:30 浏览: 75
以下是 Python 代码实现:
```python
import threading
import random
# 用于存储子线程的名称
thread_names = []
# 定义线程执行的任务
def task():
# 获取当前线程的名称
thread_name = threading.current_thread().name
# 将当前线程的名称添加到集合中
thread_names.append(thread_name)
print(f"{thread_name} 执行任务完成")
# 获取随机整数,创建相应个数的子线程
n = random.randint(1, 10)
print(f"创建了 {n} 个子线程")
threads = [threading.Thread(target=task) for i in range(n)]
# 启动所有子线程
for thread in threads:
thread.start()
# 等待所有子线程执行完毕
for thread in threads:
thread.join()
# 打印所有子线程的名称
print("所有子线程的名称为:")
for name in thread_names:
print(name)
```
代码解释:
1. `thread_names` 列表用于存储每个子线程的名称。
2. `task()` 函数是子线程执行的任务,其中 `threading.current_thread().name` 获取当前线程的名称,然后将其添加到 `thread_names` 列表中。
3. 生成一个随机整数 `n`,创建 `n` 个子线程,并启动它们。
4. 等待所有子线程执行完毕,然后遍历 `thread_names` 列表,打印每个子线程的名称。
阅读全文