我知道多进程,也知道多进程交换数据用队列Queue和管道Pipes
问题一:
队列和管道是在内存中交换数据?还是在文件中交换数据?win和linux上实现会有不同吗?
问题二:
一般的多进程队列和管道的用法:
# 在一个python文件中指定,然后把队列作为参数传入进程函数:
q = Queue()
pw = Process(target=write, args=(q,))
pr = Process(target=read, args=(q,))
而分布式进程的意思是说(我自己说的):
两个py文件
test1.py
test2.py
分别运行其(不是同时运行):
# 15:37
python test1.py
# 15.38
python test2.py
这样也是两个进程,只是运行在不同的python窗口,他们怎么交换数据?这用管道和队列就不能实现了吧
我也不知道我为啥会问这样的问题...
原来我的做法是,直接用tcp把它们连起来,完全够用,还可以通过网络分布出去
但是我就想直接在本地,没必要用网络吧,能不能直接让它两在内存中就交换数据?
这样岂不美哉233
谢谢
test1和test2共享内存通信方式:
test1向redis的key1中写入数据,test2读取redis的key1数据,用于流式传输,与队列不同,无法判断重读或未读
test1和test2队列通信方式:
老老实实用socket吧,反正多文件的进程间你也没办法加入原子锁