前言
有时候我们需要在分线程中执行方法,但是有时需要通知主线程做某些操作。
Python中多进程、多线程、协程对比
https://www.psvmc.cn/article/2021-11-24-python-async.html
queue.Queue()
1 | import queue |
multiprocessing.Queue
multiprocessing.Queue 允许不同进程之间传递数据。
不同于 queue.Queue(线程安全队列),multiprocessing.Queue 是进程安全的,适合在多进程环境中使用。
1 | import multiprocessing |
multiprocessing.Pipe()
1 | import multiprocessing |
关键点
- 双向通信:
multiprocessing.Pipe允许两个进程之间进行双向数据传输。 - 轻量级:
Pipe比Queue更轻量级,适合一对一的通信。 - 高性能:
Pipe的性能通常比Queue更高,尤其是在频繁通信的场景下。 - 阻塞操作:
send()和recv()是阻塞的,适合用来同步两个进程。
获取所在线程
1 | import threading |