日期:2014-05-16  浏览次数:20727 次

当多个进程同时进行打印输出时的问题
现象如下:
比如有多个进程,有结果时进行打印(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);

------解决方案--------------------
自己对文件加锁吧。