美文网首页
shell并行(并发或者叫多进程)执行的陷阱

shell并行(并发或者叫多进程)执行的陷阱

作者: 正哥哥 | 来源:发表于2017-11-10 14:03 被阅读0次

我常用的并行执行有以下几种方式:

  1. 脚本中调用另外的脚本
bash script01.sh &
bash script02.sh &
bash script03.sh &
wait

2.函数并行执行

func_01 &
func_02 &
func_03 &
wait

3.循环体并行执行

for i in {1..50}
do
{
    ping 192.168.1.$i -c 3 &>/dev/null
    if [ $? = 0 ]; then
        echo "[SUCCESS] 192.168.1.$i" is alive.
    else
        echo "[ERROR] 192.168.1.$i is dead!"
    fi
}&
done
wait

注意:如下方式的循环体是无法进行并行执行的

cat svn_exist_files.txt | while read LINE
do
{
    pinyin_name=$(svn log $LINE | grep line | head -n1 | cut -d' ' -f3)
    echo $LINE $pinyin_name >> final_list.txt
    echo 'this is a loop.'
}&
done
wait

echo 'Can this line be printed in the last?'

执行这样的脚本,首先被打印的就是Can this line be printed in the last?这一行,说明这里的wait是没有起到我们想要达到的目的。

可以将cat svn_exist_files.txt | while read LINE改成for i in $(cat svn_exist_files)便可以并行执循环体了,但是要注意svn_exist_files.txt文本中的每一行只有一列,也就是每一行文本不能有空格!

结论:cat xxx | while read LINE 这种循环体是不可以并行执行的!

相关文章

  • shell并行(并发或者叫多进程)执行的陷阱

    我常用的并行执行有以下几种方式: 脚本中调用另外的脚本 2.函数并行执行 3.循环体并行执行 注意:如下方式的循环...

  • 并发编程一:线程基础

    一、并行与并发 并发:任务交替执行,看起像在同时进行。并行:任务同时进行。 二、线程与进程 进程是操作系统分配资源...

  • python网络爬虫:多任务-进程、线程

    一 、实现多任务的方式 多线程多进程协程多线程+多进程 并行,并发 并行:同时发起同时执行,(4核,4个任务)并发...

  • SHELL并发编程

    SHELL的并行编程:通过启用多个并行的后台子进程,实现任务的并行处理。 并发编程的模式: 简单模式 批处理模式 ...

  • 操作系统精华

    1、并发与并行 并发可能多个任务交替执行。并行是同时执行 2、用户态和内核态 当一个进程在执行用户自己的代码时处于...

  • Go语言学习笔记19.并发编程

    前置知识点:(如果不了解建议百度下再学并发编程) 并发、并行,同时进行叫并行,交替进行叫并发(时间片轮循)。 进程...

  • iOS多线程之GCD

    线程:进程的基本执行单元多线程:从软件或者硬件上实现多个线程并发执行的技术 串行:让任务一个接着一个执行并行:可以...

  • golang笔记—— 进程\线程\协程\Goroutine

    一、并发与并行 1. 并发 并发(Concurrent):1个CPU交错执行2个任务。单核系统中,进程(或线程)通...

  • 1. 概述

    并发/并行 并发程序含有多个逻辑上的独立执行块,它们可以独立地并行执行,也可以串行执行。 并发是同一时间应对多件事...

  • 2019-05-07 并行处理技术——多核技术

    操作系统可以同时执行多个任务,每个任务就是进程(并发),进程可以同时执行多个任务,每个任务就是线程(并行多核的情况...

网友评论

      本文标题:shell并行(并发或者叫多进程)执行的陷阱

      本文链接:https://www.haomeiwen.com/subject/edsbmxtx.html