Ind*_*nus 6 queue multiprocessing python-3.x
import multiprocess as mp
Run Code Online (Sandbox Code Playgroud)
mp.Pipe()和 之间的主要区别是什么mp.Queue()?它们对我来说似乎是一样的:基本上Pipe.recv()相当于Queue.get(),Pipe.send()和Queue.put()。
它们是非常不同的事物,具有非常不同的行为。
\n\n一个Queue实例有put, get, empty,full其他方法。它有一个可选的最大尺寸(实际上是项目数量)。任何人都可以放入或进入任何队列。它是进程安全的,因为它处理所有锁定。
函数\xe2\x80\x94注意这是一个函数,而不是类实例\xe2\x80\x94返回两个类型的对象(这些Pipe是Connection类实例)。这两个实例相互连接。它们之间的连接可以是单双工的,即您只能在一个上发送,而只能在另一个上接收,也可以是全双工的,即您在一个上实际发送的任何内容都会在另一个上接收。这两个对象具有send、recv、send_bytes, recv_bytes、fileno和close方法等。发送和接收方法使用 pickling 代码在对象和字节之间进行转换,因为实际的数据传输是通过字节流进行的。连接对象未锁定,因此不是进程安全的。
进程之间的数据传输通常使用这些Connection对象:此对象和共享内存是多处理代码中所有进程间通信的底层机制。 Queue实例是更高级别的对象,最终需要使用 aConnection来发送或接收表示正在队列中传输的对象的字节流。因此,从这个意义上说,它们执行相同的操作\xe2\x80\x94,但这有点像说 USB 电缆与连接它们的设备执行相同的操作。通常,您不想处理电线上的单独电压:发送或接收整个对象要好得多。(这个类比有点弱,因为Connection实例有sendandrecv以及send_bytesand recv_bytes,但它可能仍然有帮助。)
| 归档时间: |
|
| 查看次数: |
3065 次 |
| 最近记录: |