⑴在Linux下使用Shell脚本可以方便地实现多线程的操作,不仅可以用Shell脚本后台运行多线程,还可以控制多线程的数量。下面就来介绍一下Linux系统下多线程的Shell脚本。
⑵在bash中,我们通过后台运行(&实现多线程。
⑶for((i=;i《=pairs;i++
⑷mongo=“mongo_$i”
⑸acmeair_web=“acmeair_web_$i”
⑹docker run --name $mongo -d -p $port_m: mymongodb
⑺docker run -d -p $port: --name $acmeair_web --link ${mongo}:mongo acmeair/web
⑻((port++
⑼((port_m++
⑽我们加入了 { }& 这样在{ }里的就可以在后台执行了,上面相当于pairs个同时执行了, wait是等待它们都执行完。
⑾上面我们都是对并发数不可控,下面实现可控。
⑿tmp_fifofile=“/tmp/$$.fifo”
⒀mkfifo $tmp_fifofile # 新建一个fifo类型的文件
⒁exec 《》 $tmp_fifofile #将fd指向fifo类型
⒂rm $tmp_fifofile
⒃thread = # 此处定义线程数
⒄for ((i=;i《$thread;i++; do
⒅done 》& #事实上就是在fd中放置了$thread个回车符
⒆for ((i=;i《;i++;do #循环次
⒇read -u # 一个read -u命令执行一次,就从fd中减去一个回车符,然后向下执行
⒈# fd中没有回车符时候,就停在这里了,从而实现线程数量控制
⒉docker run 。。。 mongodb
⒊docker run 。。。 acmeair/web
⒋echo “subprocess is finished”
⒌echo “error”
⒍echo 》& #当进程结束以后,再向fd中加上一个回车符,即补上了read -u减去的那个
⒎wait # 等待所有后台子进程结束
⒏exec 》&- #关闭fd
⒐以上就是Linux系统下多线程的Shell脚本了,当然运行多线程Shell脚本只是基础。还可以用多线程来进行编程,具体的方法可以参考:Linux下如何实现shell多线程编程。