`
cloudmail
  • 浏览: 267432 次
  • 来自: 广州
社区版块
存档分类
最新评论

Linux Shell实现"多进程"编程

阅读更多

 

单进程模式代码:

 

#!/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?

 

 

0
1
分享到:
评论
2 楼 cloudmail 2012-09-04  
trace 写道
引用
奇怪,为什么多进程模式下,plus最后结果是0?


子进程会复制父进程中“plus”,成为自己的一个私有变量,对它的改变不会影响父进程的plus变量

明白了,感谢解答 
1 楼 trace 2012-09-03  
引用
奇怪,为什么多进程模式下,plus最后结果是0?


子进程会复制父进程中“plus”,成为自己的一个私有变量,对它的改变不会影响父进程的plus变量

相关推荐

    linux shell C语言实现

    C语言编程实现了linux的shell功能,包括多管道,父子进程,输入输出重定向以及简单的纠错功能。另外还有详细的word说明文档及图片,介绍了程序执行情况和各个函数说明。(好吧,坦白说了吧,这是我上linux课程是一次...

    LINUX与UNIX SHELL编程指南(很全)

    第四部分 基础shell编程 第16章 shell脚本介绍 151 16.1 使用shell脚本的原因 151 16.2 脚本内容 151 16.3 运行一段脚本 152 16.4 小结 153 第17章 条件测试 154 17.1 测试文件状态 154 17.2 测试时使用逻辑操作符 ...

    Linux shell 编程

    本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell...

    Linux与unix shell编程指南

    本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell ...

    linux shell 编程教程

    linux shell编程 教程大全 目 录 译者序 前言 第一部分 shell 第1章 文件安全与权限 1 1.1 文件 1 1.2 文件类型 2 1.3 权限 2 1.4 改变权限位 4 1.4.1 符号模式 4 1.4.2 chmod命令举例 5 1.4.3 绝对模式 5 1.4.4 ...

    Linux shell编程指南

    本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 ...

    LINUX与UNIX SHELL编程指南 高清PDF

    本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell...

    shell:《 C语言实现Linux Shell命令解释器》项目可以学习Linux系统编程能力,尤其是在多进程方面。可以了解到fork,execvp等重要的系统调用。另外可以深入理解Linux Shell的功能的实现手段。

    一,实验简介《 C语言实现Linux Shell命令解释器》项目可以学习Linux系统编程能力,尤其是在多进程方面。可以了解到fork,execvp等重要的系统调用。另外可以深入理解Linux Shell的功能的实现手段。 。为了测试方便,...

    《C 语言实现 Linux Shell 命令解释器》项目.zip

    《C 语言实现 Linux Shell 命令解释器》项目可以培养 Linux 系统编程能力,尤其是在多进程方面。可以了解fork、execvp 等重要的系统调用。另外还能深入到底层理解 Linux Shell 的功能的实现手段。 软件开发设计:...

    绝版经典《Linux与UNIX Shell编程指南》

    前言 第一部分 shell 第1章 文件安全与权限 1 ...第五部分 高级shell编程技巧 第25章 深入讨论<< 281 25.1 快速创建一个文件 281 25.2 快速创建打印文档 281 25.3 自动选择菜单 282 25.4 自动...

    LINUX与UNIX_Shell编程指南

    详细的介绍了Linux下的编程指南 目 录 译者序 前言 第一部分 shell 第1章 文件安全与权限 1 1.1 文件 1 1.2 文件类型 2 1.3 权限 2 1.4 改变权限位 4 1.4.1 符号模式 4 1.4.2 chmod命令举例 5 1.4.3 绝对...

    Shell编程范例之网络操作-TinyLab原创

    之前已经介绍了shell编程范例之数值、布尔值、字符串、文件、文件系统、进程等的操作。这些内容基本覆盖了网络中某个独立机器正常工作的“方方面面”,现在需要把视角从单一的机器延伸到这些机器通过各种网络设备和...

    LINUX与UNIX+SHELL编程指南

    第四部分 基础shell编程 第16章 shell脚本介绍 151 16.1 使用shell脚本的原因 151 16.2 脚本内容 151 16.3 运行一段脚本 152 16.4 小结 153 第17章 条件测试 154 17.1 测试文件状态 154 17.2 测试时使用逻辑操作符 ...

    LINUX与UNIX SHELL编程指南

    第四部分 基础shell编程 第16章 shell脚本介绍 151 16.1 使用shell脚本的原因 151 16.2 脚本内容 151 16.3 运行一段脚本 152 16.4 小结 153 第17章 条件测试 154 17.1 测试文件状态 154 17.2 测试时使用逻辑操作符 ...

    Linux与Unix Shell编程指南(PDF格式,共30章)

    本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 ...

    linux学习笔记(包含Linux系统和shell编程).rar

    一、初识 Linux shell Linux 系统可划分为以下 4 部分。 Linux 内核 GNU 工具 图形化桌面环境 应用软件 内核主要负责以下 4 种功能。 系统内存管理 内核通过硬盘上称为交换空间(swap space)的存储区域来实现虚拟...

Global site tag (gtag.js) - Google Analytics