前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux & + wait 多进程并发编程

Linux & + wait 多进程并发编程

作者头像
lukachen
发布2023-10-22 15:52:13
2400
发布2023-10-22 15:52:13
举报
文章被收录于专栏:LukaChen BlogLukaChen Blog

近期优化一个 shell 脚本,通过 shell 多进程并发极大提升了效率,抽象出核心代码记录一下

一些注意点,直接注释在代码中,有什么疑问可以评论沟通 :)

代码语言:javascript
复制
#!/bin/bash

# 运行方式
# bash test.sh

# 查看多进程,运行的过程
# watch -d -n 1 'ps aux | grep test.sh | grep -v grep'

date
pid=$$

# 多进程并发处理
for i in `seq 1 5` # 迭代 5 次,模拟 5 个并发子进程
do
{
    echo 'hello ' >/dev/null # 业务逻辑
    echo $? >>/dev/shm/${pid}"status"${i} # 处理结果保存在 /dev/shm 共享内存(即 tmpfs),基于内存的临时文件系统
    sleep 3
} &  # & 语句丢到后台,继续下个迭代,实现并发
done
wait # 等待所有后台子进程结束

# 串行检测,多进程处理结果
flag="success"
for i in `seq 1 5`
do
{
    if [[ `cat /dev/shm/${pid}"status"${i}` -ne 0 ]]; then
        flag="have fail"
    fi
}
done

echo $flag
date
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-02-25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档