以下是简单的脚本:
a) 不断读取socket中的数据并将其存储在一个关联数组中
b) 不断从标准输入中读取值,如果它们已经存在于关联数组中,则回应t/f
a和b是随机事件,没有任何关联。
问题是如何从两个子进程访问该数组(因为将进程放入后台会生成子进程)
我正在思考最佳策略,有一些想法,但不知道有没有更好的办法:
1) 将socket中的输入重定向到标准输入作为子进程,并在一个while循环中处理两个输入(数据大小很小,小于30个字符,所以我猜它们会保持原子性?)。
2) 先读取socket,然后使用小的(0.1?)超时值在STDIN上读取,以模拟非阻塞I/O。
3) 更新:将socket数据写入文件(实际上让另一个进程直接将其写入文件),然后每次收到检查值是否存在的请求时,处理文件中的条目,将它们添加到数组中(使用文件锁定)。