主线程给子线程发送数据
时间: 2023-09-04 09:16:43 浏览: 138
子线程接收主线程发送的消息
4星 · 用户满意度95%
在Python中,可以使用Queue模块来实现主线程给子线程发送数据。具体步骤如下:
1. 在主线程中创建一个队列,并将需要发送给子线程的数据放入队列中。
2. 在子线程中创建一个循环,不断地从队列中获取数据,并进行相应的处理。
3. 在主线程中使用put()方法将数据放入队列中。
4. 在子线程中使用get()方法从队列中获取数据。
下面是一个简单的例子,演示了如何使用Queue模块在主线程和子线程之间发送数据:
```python
import threading
import queue
def worker(q):
while True:
data = q.get()
if data is None:
break
print(f"Worker got data: {data}")
q = queue.Queue()
t = threading.Thread(target=worker, args=(q,))
t.start()
for i in range(10):
q.put(i)
q.put(None)
t.join()
```
在这个例子中,主线程创建了一个队列q,并启动了一个子线程,将队列作为参数传递给子线程。主线程使用put()方法将数字1-10放入队列中,最后再放入一个None表示数据已经发送完毕。子线程使用get()方法从队列中获取数据,并进行处理。
输出结果如下:
```
Worker got data: 0
Worker got data: 1
Worker got data: 2
Worker got data: 3
Worker got data: 4
Worker got data: 5
Worker got data: 6
Worker got data: 7
Worker got data: 8
Worker got data: 9
```
阅读全文