实现十个线程同时插入20个元素,另一个线程取数并打印200个元素
时间: 2023-11-28 22:07:04 浏览: 53
以下是一个Python中使用线程和队列实现的示例代码:
```python
import threading
import queue
# 创建一个队列用于存储数据
data_queue = queue.Queue()
# 定义一个线程类,用于插入元素
class InsertThread(threading.Thread):
def run(self):
for i in range(20):
for j in range(10):
data_queue.put(i)
# 定义一个线程类,用于取数并打印
class PrintThread(threading.Thread):
def run(self):
for i in range(200):
data = data_queue.get()
print(data)
# 创建十个插入线程并启动
for i in range(10):
insert_thread = InsertThread()
insert_thread.start()
# 创建一个取数并打印的线程并启动
print_thread = PrintThread()
print_thread.start()
# 等待所有插入线程结束
for i in range(10):
insert_thread.join()
# 等待取数并打印的线程结束
print_thread.join()
```
这个示例中,我们创建了一个队列用于存储数据,然后创建了一个插入线程类和一个取数并打印的线程类。在插入线程类中,我们使用两个嵌套的循环分别向队列中插入20个元素,每次插入一个元素的时间间隔很短,因此可以认为是同时插入的。在取数并打印的线程类中,我们使用一个循环从队列中取出200个元素并打印出来。
最后,我们创建了十个插入线程和一个取数并打印的线程,并分别启动它们。在所有插入线程结束之后,我们等待取数并打印的线程也结束,程序就完成了。
相关推荐
![java](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)