问题描述:
在运行socket之后,共享内存的方法就失效了,同样尝试了内存映射mmap,
同样无法成功运行。
首先进程一需要接受来自网口的数据,数据是实时发送的,信息密度较大,所
以想尝试多进程并发提高运行速度,但python中socket和内存操作产生了冲突
,墙内墙外都没有调查到相关的问题,有人可以帮忙解答下么?管道的方式太
慢了,数据大约每秒30个包,一个包1905个字节。
有什么方法可以解决这个问题么?
起码先要看看你是如何尝试的,具体的错误信息是什么。
如果真的共享的数据比较大,那么可以直接考虑内存数据库等,比如redis,通过它来进行数据写入,读取
from multiprocessing import Process,Array
import time
from socket import *
server=socket(AF_INET,SOCK_STREAM)
server.setsockopt(SOL_SOCKET,SO_REUSEADDR,1)
server.bind(('',49153))
server.listen(5)
def fun(m,n):
conn, client_addr = server.accept()
m[1] = 88
if __name__ == '__main__':
m = Array('i', 5)
p = Process(target=fun, args=(m, 5))
p.start()
time.sleep(1)
print(m[1])
p.join()