【实验楼】Linux Shell实现模拟多进程并发执行
Linux Shell实现模拟多进程并发执行
- 实现多进程并发执行的步骤:
- 创建文件用来写脚本语言 test1.sh
- 在vim的文本编辑器中编辑脚本文件 tes1t.sh
- 保存后在终端执行
- 尝试不同的代码观察并发执行
步骤实现:
- 创建文件用来写 test1.sh
- touch test1.sh
- 在vim的文本编辑器中编辑脚本文件 test1.sh
- vim test1.sh
- i #用来开启vim的编辑功能
- 编辑完成后ESC退出编辑
- 保存后在终端执行
-
:wq #用来保存文件编辑信息
-
chmod u+x test1.sh#用来改变操作权限
-
- 尝试不同的代码观察并发执行
-
time bash test1.sh#观察并发执行
-
最后:我们发现两者代码的差别仅仅是&和wait的区别,却造成了两者用时相差两倍之多的结果,此时我们不禁问,它们两者在代码中究竟起到了什么样重要的作用?
wait和&
-
wait作用与解释:
- 等待作业号或者进程号制定的进程退出,返回最后一个作业或进程的退出状态状态。如果没有制定参数,则等待所有子进程的退出,其退出状态为0.
- 如果是shell中等待使用wait,则不会等待调用函数中子任务。在函数中使用wait,则只等待函数中启动的后台子任务。
- 在shell中使用wait命令,相当于高级语言里的多线程同步。
-
&和&&
- a & b 表示a和b同时运行
- a && b表示 a运行成功后再运行b
-
总结:使用多进程的思想进程进程的管理,辉大大减少时间消耗。而通过最少的时间消耗达到与单线程执行的同样的事情。