方法一:
#!/bin/bash
for ((i=0;i<5;i++));do
{
sleep 3;echo 1>>test && echo "done!"
} &
done
wait
cat test|wc -l
rm test
方法二:
#!/bin/bash
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
分享到:
相关推荐
linux下多线程实现矩阵乘法,可以对操作系统的线程有更多理解
c语言实现linux下多线程ping命令,可以ping一个网段,格式为./XX 14.215.177.38 14.215.177.40(以百度ip地址为例)
在linux上分别用多进程和多线程实现的同步互斥操作(源代码)
1)Linux 下C实现的多线程架构,已经实际应用的很多项目,小弟刚刚完成由WIndows到Linux的移植(唉,以前一点都没学过) 2)支持多线程用户访问,多线程日志,支持ODBC方式的数据库访问(db2只举了一个查询的例子) ...
在Linux平台上用多线程方法实现浮点向量的点积计算: 点积规则可以自己定,程序中采用的是ai=bi=-1/1/0(按3取余运算),另外,计算程序运行时间. 输入格式为: vec_mul thread_num N 参数: thread_num:线程数,从1到...
Linux下基于socket多线程并发通信的实现,论文,pdf文档
Linux 多线程 聊天室 C++,用eclipse即可。linux多线程在编译时需要添加一些pthread库,编译命令需要加-Ip
实验要求说明: Windows: (1)基于CreateThread实现多线程,并实现线程的恢复、暂停、终止等。 (2)基于Beginthread实现多线程,并实现线程的简单...Linux实验二:基于pthread_create设计实现多线程字符串排序程序
嵌入式linux下多线程视频监控的设计和实现
本科操作系统实验代码,使用多线程编程实现浮点向量的点积计算。
csdn Linux 下的多进程编程初步 摘要:多线程程序设计的概念早在六十年代就被提出,但直到八十年代中期,Unix 系 ...和早期的Windows 不同,Unix/Linux 系统是真正实现多任务操作的系统,可以说,不使. . . ./ .
Linux下多线程计算圆周率 C语言 //实现一个用多线程计算 π(圆周率)的程序。 #include #include #include #include #define N 50000//设定计算次数 #define NUM 2//设定线程数,经过反复实验,在装有1个双核...
linux下多线程udp网络编程实现消息驱动多状态机流转,收发一体,发起方先挂断
Linux 多线程实现生产者消费者模式.pdf
基于嵌入式Linux的多线程远程监控系统设计与实现.pdf
Linux多线程实现令牌桶流量控制,内有makefile
Linux系统下基于Tcp的多线程大文件上传实现.pdf
以生产者/消费者问题为例来阐述Linux线程的控制和通信。一组生产者线程与一组消费者线程通过缓冲区发生联系。生产者线程将生产的产品送入缓冲区,消费者线程则从中取出产品。缓冲区有N 个,是一个环形的缓冲池。 ...
Linux系统下的多线程遵循POSIX线程接口,称为pthread。编写Linux下的多线程程序,需要使用头文件pthread.h,连接时需要使用库libpthread.a。顺便说一下,Linux下pthread的实现是通过系统调用clone()来实现的。...
内涵头文件以及一个程序实现,内涵测试程序。linux c实现,使用线程锁,信号量,文件操作,sync等技术。测试:进入build目录 cmake 后make