k668 发表于 2018-8-26 07:04:32

Shell多线程编程的实例

#!/bin/bash  
#
  
a_sub(){
  
    sleep 5
  
}
  
Multi_Thread(){
  
    THREAD=5             # 此处定义线程数
  
    TMP_FIFO="/tmp/$.fifo"
  
    /usr/bin/mkfifo $TMP_FIFO    # 新建一个fifo类型的文件
  
    exec 6$TMP_FIFO
  
    /bin/rm -f $TMP_FIFO      # 将fd6指向fifo类型
  
    for ((i=0;i&6             # 事实上就是在fd6中放置了$THREAD个回车符
  
}
  

  
Sleep_Main(){
  
    for ((i=0;i&6   # 当进程结束以后,再向fd6中加上一个回车符,即补上了read -u6减去的那个
  
      } &
  
    done
  
    wait                # 等待所有的后台子进程结束
  
    exec 6>&-             # 关闭df6 exit 0
  
}
  

  
Multi_Thread
  
Sleep_Main


页: [1]
查看完整版本: Shell多线程编程的实例