a 变量是数组,会有一个线程不断往a 数组添加数据,现在要起一个线程,当a 数组有数据时,间隔十秒将a数组中的数据写入到文件b中
时间: 2024-03-12 14:48:48 浏览: 77
可以使用线程间通信的方式来实现这个需求,具体的做法是:
1. 定义一个共享的队列,线程A往这个队列中添加数据,线程B从这个队列中读取数据。
2. 线程B每隔10秒钟从队列中取出数据,写入到文件b中。可以使用Python中的Queue模块来实现队列的功能。
以下是实现代码示例:
```python
import threading
import time
from queue import Queue
a = [] # 定义一个数组a
def thread_a():
while True:
data = input("请输入数据:")
a.append(data) # 线程A将数据添加到数组a中
def thread_b():
while True:
if len(a) > 0: # 判断数组a是否有数据
data = a.pop(0) # 取出数组a中的第一个元素
print("写入文件b:", data)
# 将数据写入文件b中
with open("b.txt", "a") as f:
f.write(data + "\n")
time.sleep(10) # 线程B每隔10秒钟执行一次
queue = Queue() # 定义一个队列
thread1 = threading.Thread(target=thread_a)
thread2 = threading.Thread(target=thread_b)
thread1.start()
thread2.start()
```
在上面的代码中,线程A通过不断地从控制台输入数据,将数据添加到数组a中。线程B每隔10秒钟从数组a中取出一个数据,写入到文件b中。这里使用了Python中的time模块来控制线程B的执行时间间隔。同时,为了实现线程间通信,我们使用了Python中的Queue模块来定义一个共享的队列,线程A将数据添加到队列中,线程B从队列中取出数据。
阅读全文