读书人

当多个进程同时进行打印输出时的有关问

发布时间: 2012-08-02 11:35:25 作者: rapoo

当多个进程同时进行打印输出时的问题
现象如下:
比如有多个进程,有结果时进行打印(echo $msg) ,且将打印的内容输入到同一个文件中,如output.file
格式如:msg="<start>\naaaaaa\nbbbbbbbbb\nccccccccc\n<end>\n"

问题是:
当多个进程同时进行打印输出时,那么$msg的情况会变乱,即A进程的结果含有B进程的结果,如:
A: msg="<start>\naaaaaa\nbbbbbbbbb\nccccccccc\n<end>\n"
B: msg="<start>\n11111\n222222222\n33333333\n<end>\n"

结果:<start>
aaaaaaaaaaa
11111111
2222222
3333333
<end>
bbbbbbbbbb
cccccccccc
<end>

请问:有什么办法让输出一个一个的顺序来?保证结果集的完整;

很类似的像PERL语言中的$sock->autoflush(1);

[解决办法]
自己对文件加锁吧。

读书人网 >UNIXLINUX

热点推荐