python套接字及消息队列

  • 套接字(socket–插座)
    1)通过一个协议,链接两个进程,主要是网络请求。
    2)进程A向百度云上传文件,进程B向百度云下载文件,不会有冲突
  • 管道

1)用文件的内存缓存区作为管道,实现进程间通信

  • 匿名管道

主进程和子进程进行交互

  • 具名管道

和匿名管道原理是一样的。不是不相关的进程也可以互相访问。
在这里插入图片描述

  • 消息队列

就是一个存在内核内存空间中的列表。 (这就是它最原始的定义)

redis就是消息队列+socket

def save_to_queue(index,my_queue):
    my_queue.put(index)

if __name__ == '__main__':
    process_array = []
    my_queue = Queue()
    
    for i in range(10):
        p = Process(target=save_to_queue,args=(i,my_queue))
        process_array.append(p)
        p.start()
    for p in process_array:
        p.join()
    
    while True:
        print(my_queue.get())
  • 共享内存

进程访问内核态同一块内存
from multiprocessingimport Queue,Array,value

  • 信号量

不是用来传递数据的,是用来传递消息的
1)进程B 等待进程A执行到某一步操作后才会启动
2)进程A–》发消息–》内核—》转发信息—》进程B

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值