zoukankan      html  css  js  c++  java
  • shell 的多进程

    例子

    #!/bin/bash
    temp_fifo_file=$$.info        #以当前进程号,为临时管道取名
    mkfifo $temp_fifo_file        #创建临时管道
    exec 6<>$temp_fifo_file       #创建标识为6,可以对管道进行读写
    rm $temp_fifo_file            #清空管道内容
    function f_sleep              
    {
      sleep 2
    } 
     
    temp_thread=2                 #进程数
     
    for ((i=0;i<temp_thread;i++)) #为进程创建相应的占位
    do
      echo                        #每个echo输出一个回车,为每个进程创建一个占位
    done >&6                      #将占位信息写入标识为6的管道
     
    for ((i=0;i<6;i++))          
    do
      read                        #获取标识为6的占位
      {
        f_sleep
        echo $$,$i,`date`
        sleep 5
        echo $$,$i,`date`
        echo >&6                  #>>>>>当任务执行完后,会释放管道占位,所以补充一个占位
      }&                          #>>>>>在后台执行{}中的任务
    done <&6                      #将标识为6的管道作为标准输入
     
    wait                          #等待所有任务完成
    exec 6>&-                     #关闭标识为6的管道

    例子

    #!/bin/bash
    temp_fifo_file=$$.info        #以当前进程号,为临时管道取名
    mkfifo $temp_fifo_file        #创建临时管道
    exec 6<>$temp_fifo_file       #创建标识为6,可以对管道进行读写
    rm $temp_fifo_file            #清空管道内容
    function f_sleep              
    {
      sleep 2
    } 
     
    temp_thread=2                 #进程数
     
    for ((i=0;i<temp_thread;i++)) #为进程创建相应的占位
    do
      echo                        #每个echo输出一个回车,为每个进程创建一个占位
    done >&6                      #将占位信息写入标识为6的管道
     
    for ((i=0;i<6;i++))          
    do
      read                        #获取标识为6的占位
      {
        f_sleep
        echo $$,$i,`date`
      }&                          #>>>>>在后台执行{}中的任务
      sleep 5
      echo $$,$i,`date`
      echo >&6                    #>>>>>当任务执行完后,会释放管道占位,所以补充一个占位
    done <&6                      #将标识为6的管道作为标准输入
     
    wait                          #等待所有任务完成
    exec 6>&-                     #关闭标识为6的管道

    例子

    #!/bin/bash
    temp_fifo_file=$$.info        #以当前进程号,为临时管道取名
    mkfifo $temp_fifo_file        #创建临时管道
    exec 6<>$temp_fifo_file       #创建标识为6,可以对管道进行读写
    rm $temp_fifo_file            #清空管道内容
    function f_sleep              
    {
      sleep 2
      echo >&6                    #>>>>>当任务执行完后,会释放管道占位,所以补充一个占位
    } 
     
    temp_thread=2                 #进程数
     
    for ((i=0;i<temp_thread;i++)) #为进程创建相应的占位
    do
      echo                        #每个echo输出一个回车,为每个进程创建一个占位
    done >&6                      #将占位信息写入标识为6的管道
     
    for ((i=0;i<6;i++))          
    do
      read                        #获取标识为6的占位
      {
        f_sleep
        echo $$,$i,`date`
      }&                          #>>>>>在后台执行{}中的任务
      sleep 5
      echo $$,$i,`date`
    done <&6                      #将标识为6的管道作为标准输入
     
    wait                          #等待所有任务完成
    exec 6>&-                     #关闭标识为6的管道

    例子

    #!/bin/bash
    temp_fifo_file=$$.info        #以当前进程号,为临时管道取名
    mkfifo $temp_fifo_file        #创建临时管道
    exec 6<>$temp_fifo_file       #创建标识为6,可以对管道进行读写
    rm $temp_fifo_file            #清空管道内容
    function f_sleep              
    {
      sleep 2
      echo >&6                    #>>>>>当任务执行完后,会释放管道占位,所以补充一个占位
    } 
     
    temp_thread=2                 #进程数
     
    for ((i=0;i<temp_thread;i++)) #为进程创建相应的占位
    do
      echo                        #每个echo输出一个回车,为每个进程创建一个占位
    done >&6                      #将占位信息写入标识为6的管道
     
    for ((i=0;i<6;i++))          
    do
      read                        #获取标识为6的占位
      {
        f_sleep
        echo $$,$i,`date`
        sleep 5
        echo $$,$i,`date`
      }&                          #>>>>>在后台执行{}中的任务
    done <&6                      #将标识为6的管道作为标准输入
     
    wait                          #等待所有任务完成
    exec 6>&-                     #关闭标识为6的管道
  • 相关阅读:
    近两年目标
    Spring使用ajax异步上传文件
    java注解
    js 点击文本框,预览选择图片
    修改服务器系统时间(包括hive)
    队列原理
    EMR目录
    2个CDH的hive数据同步
    CDH建表字符集问题
    EMR的fair-scheduler.xml
  • 原文地址:https://www.cnblogs.com/sea-stream/p/10759949.html
Copyright © 2011-2022 走看看