首页 > 其他分享 >并发控制

并发控制

时间:2022-11-30 23:46:22浏览次数:43  
标签:tmp 文件 控制 ip fifofile echo 并发 描述符

#(File Descriptors) FD,文件描述符,文件句柄
#使用文件描述符管理打开的文件
#当一个文件FD未被释放,删除源文件也不会影响
ls /proc/$$/fd  #$$ 当前进程,查看打开的文件描述符
exec 6<> file #手动定义打开文件描述符
echo "test" >> /proc/$$/fd/6  #通过文件描述符写入数据
exec 6<&- #关闭文件

#管道也是文件,但只能查看一次,不像静态文件
rpm -qa|grep bash  #匿名管道  只能在一个终端
mkfifo /tmp/fifo1  #命名管道  可以跨终端  命名管道可以视为一个进程的输入,用来另外一个进程的输出

 

#!/usr/bin/bash
thread=5
tmp_fifofile=/tmp/$$.fifo
mkfifo $tmp_fifofile

exec 8<> $tmp_fifofile
rm $tmp_fifofile

for i in `seq $thread`
do
	echo >&8 #&8简写(/proc/$$/fd/8) 文件描述符
done

for i in {1..254}
do
	read -u 8 #-u 从文件描述符读取数据
	{
		ip=192.168.201.130
		ping -c1 -W1 $ip &>/dev/null
		if [ $? -eq 0 ];then
			echo "$ip is up"
		else 
			echo "$ip is down"
		fi
		echo >&8 #再写入数据 保证线程梳理
	}&
done

wait
echo "finish ...."

  

 

标签:tmp,文件,控制,ip,fifofile,echo,并发,描述符
From: https://www.cnblogs.com/smatter/p/16940178.html

相关文章

  • 测试索引、联合索引、全文检索、插入数据、更新数据、删除数据、主键、外键、重命名表
    目录测试索引联合索引全文检索插入数据更新数据删除数据主键外键重命名表事务安全管理隔离级别锁事务日志MVCC多版本控制转换表的引擎测试索引准备#1.准备表createta......
  • 大数据学习6之分布式日志收集框架Flume——Flume实战应用之从指定的网络端口采集数据
    从指定的网络端口采集数据输出到控制台进入官网,查看文档,settingupanagent,看到asimpleexample使用Flume的关键就是写flume的agent配置文件1.配置source2.配置channel......
  • 基于注解的声明式事务控制
    操作过程1 使用@Transactional在需要进行事务控制的类或是方法上修饰,注解可用的属性同xml配置方式2 注解使用在类上,那么该类下的所有方法都是用同一套注解参......
  • 基于XML的声明式事务控制
    <tx:methodname="transfer"isolation="REPEATABLE_READ"propagation="REQUIRED"timeout="-1"read-only="false"/><tx:method>代表切点方法的事务参数的配置nam......
  • java并发编程(二十二)-并发安全的基本概念
    类的线程安全定义  如果多线程下使用这个类,不过多线程如何使用和调度这个类,这个类总是表示出正确的行为,这个类就是线程安全的。类的线程安全表现为:操作的原子性内存的可见......
  • java并发编程(二十三)-并发安全之死锁
    死锁资源一定是多于1个,同时小于等于竞争的线程数,资源只有一个,只会产生激烈的竞争。死锁的根本成因:获取锁的顺序不一致导致。 死锁的一般情况:packagecom.caojiulu;importc......
  • java并发编程(一)-线程相关的基本概念
    CPU核心数和线程数的关系核心数:线程数=1:1intel引入超线程技术之后--》核心数:线程数=1:2CPU时间片轮转机制-又称RR调度 时间片轮转法(Round-Robin,RR)主要用于分时系统......
  • java并发编程(三)-线程的协作式
    怎么样才能让Java里的线程安全停止工作呢?一般来说:程序执行完或者抛出异常。怎么用代码的方式将线程停止呢?可以看到stop(),resume(),suspend()已不建议使用,stop()会导致线程......
  • 利用位运算做权限控制
    位运算应用范围十分广泛,下面这个例子就是用来做权限控制类似于linux的文件系统里面的chmod777  节约内存空间,一个数据机构就能表示多种权限直接上代码吧: packagecom.c......
  • 高并发系统之限流特技
    在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流。缓存的目的是提升系统访问速度和增大系统能处理的容量,可谓是抗高并发流量的银弹;而降级是当服务出问题或者影响......