【发布时间】:2011-10-05 20:37:05
【问题描述】:
这里是简单的脚本:
a) 不断地从套接字读取并将值存储在关联数组中
b) 不断地从标准输入读取值并响应 t/f(如果它们已经存在)在关联数组中
a & b 是随机事件,没有任何关联。
诀窍是从两个子进程访问数组(因为将进程置于后台会生成子进程)
我正在考虑最佳策略,并且出现了一些想法,但我想知道是否有人有更好的想法:
1) 将输入从套接字重定向到标准输入作为子进程,并在一个 while 循环中处理两个输入(数据大小很小,2) 读取套接字,然后读取 STDIN,读取时具有小的 (0.1?) 超时值,以模拟非阻塞 I/O。
3) UPDATE:将socket数据写入文件(实际上是让其他进程直接写入文件),然后每次有请求进来检查值是否存在,处理文件中的条目,将它们添加到数组中(使用文件锁定)。
【问题讨论】:
-
听起来你的想法是对的。是否有理由使用 bash 而不是另一种语言?
-
好问题。不,没有充分的理由在另一种语言上使用 bash。 Bash 既简单又小,这是唯一的原因(我还有 5 个其他 bash 脚本执行类似的身份验证/日志记录/用户管理任务,所以维护一个统一的平台很好)
标签: linux multithreading bash io subprocess