当前位置: 技术问答>linux和unix
当多个进程同时进行打印输出时的问题
来源: 互联网 发布时间:2017-03-03
本文导语: 现象如下: 比如有多个进程,有结果时进行打印(echo $msg) ,且将打印的内容输入到同一个文件中,如output.file 格式如:msg="naaaaaanbbbbbbbbbncccccccccnn" 问题是: 当多个进程同时进行打印输出时,那么$msg的情况会变乱,...
现象如下:
比如有多个进程,有结果时进行打印(echo $msg) ,且将打印的内容输入到同一个文件中,如output.file
格式如:msg="naaaaaanbbbbbbbbbncccccccccnn"
问题是:
当多个进程同时进行打印输出时,那么$msg的情况会变乱,即A进程的结果含有B进程的结果,如:
A: msg="naaaaaanbbbbbbbbbncccccccccnn"
B: msg="n11111n222222222n33333333nn"
结果:
aaaaaaaaaaa
11111111
2222222
3333333
bbbbbbbbbb
cccccccccc
请问:有什么办法让输出一个一个的顺序来?保证结果集的完整;
很类似的像PERL语言中的$sock->autoflush(1);
比如有多个进程,有结果时进行打印(echo $msg) ,且将打印的内容输入到同一个文件中,如output.file
格式如:msg="naaaaaanbbbbbbbbbncccccccccnn"
问题是:
当多个进程同时进行打印输出时,那么$msg的情况会变乱,即A进程的结果含有B进程的结果,如:
A: msg="naaaaaanbbbbbbbbbncccccccccnn"
B: msg="n11111n222222222n33333333nn"
结果:
aaaaaaaaaaa
11111111
2222222
3333333
bbbbbbbbbb
cccccccccc
请问:有什么办法让输出一个一个的顺序来?保证结果集的完整;
很类似的像PERL语言中的$sock->autoflush(1);
|
自己对文件加锁吧。