前言
有时候我们需要在分线程中执行方法,但是有时需要通知主线程做某些操作。
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 |