linux - 命名管道中的串行传输
问题描述
我想将数据顺序传输到命名管道(FIFO)。为此,我在后台调用顺序命令:
(echo "text1" > pipe &); (echo "text2" > pipe &); (echo "text3" > pipe &);
在同一过程中,我调用以下命令:
cat pipe
我希望得到以下输出:
text1
text2
text3
但我在输出中得到随机顺序:
text2
text1
text3
是否有可能在输出端获得与输入端相同的顺序?
解决方案
后台并行进程的顺序不是确定性的,因为它们都是独立调度的。
如果您希望三个后台作业按顺序运行,请在后台尝试:
{ task1; task2; task3; } &
注意不要省略任何空格或分号。
推荐阅读
- python - 在使用并发期货时发出日志进程的功能
- constraint-programming - Minizinc - 变量值等于 0、0.5 或 1
- reactjs - Ckeditor5 未在 Ant Design 中显示
- python - 如何一次使用 SqlQuery 从数据库中收集所有数据?
- github - 如何更改文件名的大小写
- aws-glue - 处理 Glue 作业时出现 Nullpointer 异常
- sql-server - 如何根据 SQL Server 上的间隔日期和每日成本表计算项目阶段成本
- ios - Firebase/Crashlytics 和 Firebase/Analytics 的 NSUserTrackingUsageDescription 的目的字符串是什么?
- javascript - 如何在 Jquery 选择/选项过滤系统中保留最后的首选项?
- opencv - 如何在 OpenCV 中获得与 ImageMagick 的“convert -fft”完全相同的结果?