单进程模式代码:
#!/bin/sh
plus=0;
t1=`date +%s`
sub_fun()
{
index="${1}"
for i in {1..4}; do
echo "sub_fun $index, loop:$i"
plus=$[$plus + 1]
sleep 1
done
}
echo "Begin run on time: `date +%T`"
for j in {1..3}; do
{
sub_fun "$j"
}
done
t2=`date +%s`
echo "End run on time: `date +%T`, plus sum:$plus, run time:$[ $t2 - $t1 ]"
单进程运行结果:
Begin run on time: 18:56:01
sub_fun 1, loop:1
sub_fun 1, loop:2
sub_fun 1, loop:3
sub_fun 1, loop:4
sub_fun 2, loop:1
sub_fun 2, loop:2
sub_fun 2, loop:3
sub_fun 2, loop:4
sub_fun 3, loop:1
sub_fun 3, loop:2
sub_fun 3, loop:3
sub_fun 3, loop:4
End run on time: 18:56:13, plus sum:12, run time:12
多进程模式代码:
#!/bin/sh
plus=0;
t1=`date +%s`
file_path="file.eml"
sub_fun()
{
index="${1}"
file_path="${2}"
for i in {1..4}; do
echo "[`date +%T`]sub_fun $index, file:$file_path, loop:$i"
plus=$[$plus + 1]
sleep 1
done
}
echo "Begin run on time: `date +%T`"
for j in {1..3}; do
{
sub_fun "$j" "$file_path$j"
} &
done
wait
t2=`date +%s`
echo "End run on time: `date +%T`, plus sum:$plus, run time:$[ $t2 - $t1 ]"
多进程运行结果:
Begin run on time: 20:55:40
[20:55:40]sub_fun 1, file:file.eml1, loop:1
[20:55:40]sub_fun 2, file:file.eml2, loop:1
[20:55:40]sub_fun 3, file:file.eml3, loop:1
[20:55:41]sub_fun 1, file:file.eml1, loop:2
[20:55:41]sub_fun 2, file:file.eml2, loop:2
[20:55:41]sub_fun 3, file:file.eml3, loop:2
[20:55:42]sub_fun 1, file:file.eml1, loop:3
[20:55:42]sub_fun 2, file:file.eml2, loop:3
[20:55:42]sub_fun 3, file:file.eml3, loop:3
[20:55:43]sub_fun 2, file:file.eml2, loop:4
[20:55:43]sub_fun 1, file:file.eml1, loop:4
[20:55:43]sub_fun 3, file:file.eml3, loop:4
End run on time: 20:55:44, plus sum:0, run time:4
奇怪,为什么多进程模式下,plus最后结果是0?
分享到:
相关推荐
"Linux与UNIX Shell编程指南" Linux与UNIX Shell编程指南是计算机科学领域中一本经典的指南手册,旨在帮助读者快速掌握Linux与UNIX操作系统下的shell编程技术。下面是从该书中生成的相关知识点: 1. Shell概述 ...
Linux Shell编程是Linux系统中非常重要的一个环节,它允许用户通过命令行接口编写脚本,自动化执行一系列操作,极大地提高了工作效率。在这个主题中,我们将深入探讨Linux命令行基础以及Shell编程的相关知识。 首先...
通过阅读"Linux Shell编程手册",初学者不仅能掌握Shell的基础用法,还能了解到更多高级特性和实践技巧,从而更好地利用Shell提升日常Linux系统管理的效率。同时,熟悉Shell编程也是成为一名合格Linux系统管理员的...
Linux C为用户提供了一个强大的编程环境,本文分析了微型SHELL的基本功能及实现机制,并使用Linux下的多进程编程技术设计了一个微型SHELL,最后给出了在Linux C下的实现代码。 微型SHELL的基本功能包括命令解释、...
Linux Shell脚本编程实例是指使用Linux操作系统的Shell来编写脚本程序,实现自动化任务、批处理和system administration等功能。本文将通过实例讲解Linux Shell脚本编程的基本概念、语法和应用。 一、基本概念 1. ...
通过阅读这本书,你不仅能掌握Shell编程的基本语法,还能了解到如何利用Shell实现日常的系统管理和自动化工作流程,从而提高工作效率。在实践中不断探索和学习,Shell编程将成为你不可或缺的技能。
### Linux Shell编程知识点详解 #### 一、Shell编程概述 **Shell** 在 Unix/Linux 系统中扮演着极其重要的角色,既是用户与操作系统交互的主要接口,也是一种强大的编程语言。通过 Shell 编程,用户不仅可以自动化...
### Linux 下 Shell 编程详解 #### 一、Shell 的概念与作用 Shell 是一种特殊的程序,它作为用户与 Linux/UNIX 操作系统之间的重要接口。它的存在为用户提供了便捷的操作方式,同时也起到了保护内核免受用户误操作...
Linux Shell编程基础是掌握Linux系统管理和自动化任务执行的关键技能之一。本文主要介绍如何开始编写Shell脚本,如何处理注释,以及如何执行脚本。同时,我们还将深入探讨Bash中的各种变量,包括环境变量、位置变量...
Linux Shell 种类非常多,常见的 SHELL 如下:Bourne Shell、Bourne Again Shell、C Shell、K Shell、Shell for Root 等。不同的 Shell 语言的语法有所不同,一般不能交换使用,最常用的 shell 是 Bash,也就是 ...
在本学习资料包中,包含了三本关于Linux Shell的重要书籍:《Linux Shell编程艺术》、《Linux Shell脚本攻略》以及《Linux Shell从入门到精通》,这些资源将帮助你全面深入地理解和掌握Linux Shell。 《Linux Shell...
C语言编程实现了linux的shell功能,包括多管道,父子进程,输入输出重定向以及简单的纠错功能。另外还有详细的word说明文档及图片,介绍了程序执行情况和各个函数说明。(好吧,坦白说了吧,这是我上linux课程是一次...
Shell编程则是利用Shell语言编写脚本,实现自动化任务处理,极大提高了工作效率。本文将围绕“Linux C函数”以及“C Shell”在Linux环境中的编程实践进行详细阐述。 首先,让我们探讨一下Shell编程。在Linux中,...
本文将深入探讨Linux Shell命令行及其脚本编程的实例详解,旨在帮助读者掌握这一强大的工具。 首先,我们需要了解Linux的基础,它是开源的操作系统,提供了稳定且灵活的环境,广泛应用于服务器和开发领域。Linux ...
3. **在Linux世界驰骋系列之Shell编程.pdf**:这本书可能专注于Perl在Linux环境中的应用,可能涵盖了如何结合Shell和Perl进行系统级编程的实例。 4. **C-Shell Script Training Manual.pdf**:这本书可能专门针对C-...
Shell是Linux操作系统中的一个重要组件,它作为用户与系统交互的接口,负责解释用户输入的命令,创建子进程执行相应功能,并在任务完成后返回提示符。除此之外,Shell还是一种强大的编程语言,具备变量、控制结构和...
在本资源包中,我们聚焦于“实战Linux Shell编程与服务器管理”。Shell编程是Linux操作系统中的核心技能之一,它允许用户通过命令行界面自动化执行任务,极大地提高了工作效率。以下是关于这个主题的一些关键知识点...
Linux Shell脚本编程是Linux系统管理中的重要技能,它允许用户通过编写命令行脚本来自动化日常任务,提高工作效率。这份“Linux Shell脚本编程PPT打包”资源包含了从入门到精通的完整教程,旨在帮助初学者和有经验的...
Linux Shell编程是Linux操作系统中的一种重要工具,它...掌握Linux Shell编程能让你更高效地管理Linux系统,编写自动化任务,实现日常工作的便捷化。通过不断的实践和学习,你将能够编写出更复杂的脚本,解决各种问题。
在Linux下,使用fork系统调用创建多进程。进程的创建通常发生在命令行键入程序文件名之后。 进程创建的范例包括让程序在后台运行,例如使用`sleep 100 &`命令,这将使程序在后台执行,其中`&`符号让程序脱离当前...