【实验楼】Linux Shell实现模拟多进程并发执行

Linux Shell实现模拟多进程并发执行

  • 实现多进程并发执行的步骤:
    1. 创建文件用来写脚本语言 test1.sh
    2. 在vim的文本编辑器中编辑脚本文件 tes1t.sh
    3. 保存后在终端执行
    4. 尝试不同的代码观察并发执行
步骤实现:
  1. 创建文件用来写 test1.sh
    • touch test1.sh
  2. 在vim的文本编辑器中编辑脚本文件 test1.sh
    • vim test1.sh
    • i #用来开启vim的编辑功能
    • 编辑完成后ESC退出编辑
  3. 保存后在终端执行
    • :wq #用来保存文件编辑信息

      • 【实验楼】Linux Shell实现模拟多进程并发执行_第1张图片
      • 【实验楼】Linux Shell实现模拟多进程并发执行_第2张图片
    • chmod u+x test1.sh#用来改变操作权限

  4. 尝试不同的代码观察并发执行
    • time bash test1.sh#观察并发执行

      • 【实验楼】Linux Shell实现模拟多进程并发执行_第3张图片
      • 【实验楼】Linux Shell实现模拟多进程并发执行_第4张图片

最后:我们发现两者代码的差别仅仅是&和wait的区别,却造成了两者用时相差两倍之多的结果,此时我们不禁问,它们两者在代码中究竟起到了什么样重要的作用?

wait和&
  • wait作用与解释:

    1. 等待作业号或者进程号制定的进程退出,返回最后一个作业或进程的退出状态状态。如果没有制定参数,则等待所有子进程的退出,其退出状态为0.
    2. 如果是shell中等待使用wait,则不会等待调用函数中子任务。在函数中使用wait,则只等待函数中启动的后台子任务。
    3. 在shell中使用wait命令,相当于高级语言里的多线程同步。
  • &和&&

    • a & b 表示a和b同时运行
    • a && b表示 a运行成功后再运行b
  • 总结:使用多进程的思想进程进程的管理,辉大大减少时间消耗。而通过最少的时间消耗达到与单线程执行的同样的事情。

【实验楼】Linux Shell实现模拟多进程并发执行_第5张图片

你可能感兴趣的:(操作系统,大二练习)