返回顶部
首页 > 资讯 > 操作系统 >Linux系统下Shell多线程编程的实例用法
  • 520
分享到

Linux系统下Shell多线程编程的实例用法

2023-06-13 03:06:48 520人浏览 泡泡鱼
摘要

本篇内容主要讲解“linux系统下shell多线程编程的实例用法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux系统下Shell多线程编程的实例用法”吧!#!/bin/bash#&

本篇内容主要讲解“linux系统下shell多线程编程的实例用法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux系统下Shell多线程编程的实例用法”吧!

#!/bin/bash
#———————————————————————————–
# 此例子说明了一种用wait、read命令模拟多线程的一种技巧
# 此技巧往往用于多主机检查,比如ssh登录、ping等等这种单进程比较慢而不耗费cpu的情况
# 还说明了多线程的控制
#———————————————————————————–
function a_sub
{
 # 此处定义一个函数,作为一个线程(子进程)
sleep 3 # 线程的作用是sleep 3s
 }
tmp_fifofile="/tmp/$.fifo" mkfifo $tmp_fifofile      # 新建一个fifo类型的文件
exec 6<>$tmp_fifofile      # 将fd6指向fifo类型
rm $tmp_fifofile thread=15 # 此处定义线程数
for
((i=0;i<$thread;i++));do echo
done >&6 # 事实上就是在fd6中放置了$thread个回车符
for
((i=0;i<50;i++));do # 50次循环,可以理解为50个主机,或其他
read -u6 # 一个read -u6命令执行一次,就从fd6中减去一个回车符,然后向下执行,
# fd6中没有回车符的时候,就停在这了,从而实现了线程数量控制
{ # 此处子进程开始执行,被放到后台
a_sub &&
{ # 此处可以用来判断子进程的逻辑
echo "a_sub is finished"
}
||
{ echo "sub error"
}
echo >&6 # 当进程结束以后,再向fd6中加上一个回车符,即补上了read -u6减去的那个
}
& done wait # 等待所有的后台子进程结束
exec 6>&- # 关闭df6 exit 0

说明:

此程序中的命令 

mkfifo tmpfile

 和linux中的命令 

mknod tmpfile p

  效?果相同。区别是mkfifo为POSIX标准,因此推荐使用它。该命令创建了一个先入先出的管道文件,并为其分配文件标志符6。管道文件是进程之间通信的一种方式,注意这一句很重要  

exec 6<>$tmp_fifofile      # 将fd6指向fifo类型

  如果没有这句,在向文件$tmp_fifofile或者&6写入数据时,程序会被阻塞,直到有read读出了管道文件中的数据为止。而执行了上面这一句后就可以在程序运行期间不断向fifo类型的文件写入数据而不会阻塞,并且数据会被保存下来以供read程序读出。
通过运行命令:

time ./multithread.sh >/dev/null

最终运算时间: 50/15 = 3组(每组15)+1组(5个<15 组成一个组)= 4组,每组花费时间:3秒,

则 3 * 4 = 12 秒。

传统非多线程的代码 运算时间: 50 * 3 = 150 秒。 

到此,相信大家对“Linux系统下Shell多线程编程的实例用法”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: Linux系统下Shell多线程编程的实例用法

本文链接: https://lsjlt.com/news/264561.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Linux系统下Shell多线程编程的实例用法
    本篇内容主要讲解“Linux系统下Shell多线程编程的实例用法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux系统下Shell多线程编程的实例用法”吧!#!/bin/bash#&...
    99+
    2023-06-13
  • Linux下怎么实现shell多线程编程
    本篇内容介绍了“Linux下怎么实现shell多线程编程”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  Linux中多线程编程拥有提高应用...
    99+
    2023-06-13
  • Linux下的多线程编程实例解析
    1 引言   线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许...
    99+
    2022-06-03
    Linux 多线程编程
  • linux系统下udp编程实例
    以下是一个简单的UDP编程实例,用于在Linux系统上发送和接收UDP数据包。```c#include #include #incl...
    99+
    2023-09-20
    Linux
  • Linux多线程编程实例分析
    这篇文章主要讲解了“Linux多线程编程实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux多线程编程实例分析”吧!线程  线程是计算机中独立运...
    99+
    2024-04-02
  • 如何解析Linux系统多线程编程
    这篇文章的内容主要围绕如何解析Linux系统多线程编程进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!Linux下的多线程编程1 引言  线程(thr...
    99+
    2023-06-28
  • Linux系统中Shell编程的示例分析
    这篇文章主要介绍Linux系统中Shell编程的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一. 什么是Shell        1. 在学习Shell编程之前,我们...
    99+
    2023-06-26
  • 怎么在linux系统中实现openmp多线程编程
    本篇文章给大家分享的是有关怎么在linux系统中实现openmp多线程编程,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。关键语法:代码如下:#inlcude <omp.h...
    99+
    2023-06-13
  • nodejs中使用多线程编程的方法实例
    在以前的博文别说不可能,nodejs中实现sleep中,我向大家介绍了nodejs addon的用法。今天的主题还是addon,继续挖掘c/c++的能力,弥补nodejs的弱点。 我曾多次提到过nodejs...
    99+
    2022-06-04
    多线程 实例 方法
  • Python多线程编程实例
    Python多线程编程 发布者:lanyulei,转载请注明出处:http://www.fdevops.com/p=517 下面多线程模块threading的方法注释,均来自于百度贴吧"学点编程吧"。 Thread: 表示一个线程的执行对象...
    99+
    2023-01-31
    多线程 实例 Python
  • java多线程编程实例
    以下是一个简单的Java多线程编程实例:```javapublic class MultiThreadExample impleme...
    99+
    2023-08-16
    Java
  • Java多线程编程小实例模拟停车场系统
    下面分享的是一个Java多线程模拟停车场系统的小实例(Java的应用还是很广泛的,哈哈),具体代码如下:Park类public class Park {boolean []park=new boolean[3]; public bool...
    99+
    2023-05-30
    java 多线程 ava
  • 在Linux系统上怎么进行openmp多线程编程
    这篇文章主要讲解了“在Linux系统上怎么进行openmp多线程编程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“在Linux系统上怎么进行openmp多线程编程”吧!  OpenMP是一种...
    99+
    2023-06-13
  • 举例讲解Linux系统下Python调用系统Shell的方法
    时候难免需要直接调用Shell命令来完成一些比较简单的操作,比如mount一个文件系统之类的。那么我们使用Python如何调用Linux的Shell命令?下面来介绍几种常用的方法: 1. os 模块 1.1...
    99+
    2022-06-04
    系统 方法 Linux
  • android编程之多线程编程实例分析
    本文实例讲述了android编程之多线程编程实现方法。分享给大家供大家参考。具体分析如下: 该功能与前面《android开发socket编程之udp发送实例分析》中一样,当按下...
    99+
    2022-06-06
    程之 多线程编程 多线程 线程 Android
  • Shell多线程操作及线程数控制实例
    前言 在业务开发过程中,经常会在后台写一些shell脚本处理数据,但估计很多人不知道shell脚本也可以支持多线程,而且非常简单。本篇文章主要就是介绍shell实现多进程以及进程数量控制。 需求 为了更好的...
    99+
    2022-06-04
    线程 多线程 实例
  • JAVA多线程编程实例分析
    今天小编给大家分享一下JAVA多线程编程实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1.三个售票窗口同时出售20张...
    99+
    2023-06-27
  • 如何实现Linux多线程编程
    这篇文章主要介绍“如何实现Linux多线程编程”,在日常操作中,相信很多人在如何实现Linux多线程编程问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何实现Linux多线程编程”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-13
  • 对Linux下shell编程之for循环的实例讲解
    linux 下 for 循环中可以使用 break 和 continue 关键字来跳出循环, 和java 用法一致 一、常用for循环结构 #语法一 for 变量 in 值1 值2 值3.. do 程序块儿...
    99+
    2022-06-04
    linux shell for 循环
  • Windows下多线程编程的方法是什么
    在Windows下,多线程编程的方法主要有以下几种: 使用WinAPI函数:使用Windows API函数创建和管理线程。可以使...
    99+
    2023-10-23
    Windows
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作