int Delay(int x)
{
int i
i=x
while(i>=0)
i--
}
这样也算构成了一个延迟程序
我的需求是PING这个地址 只要延迟高于100ms就发送个邮件 然后正常后在发个邮件通知 之后正常不发 一有延迟就发 我这个老是重复 求高人指点 #!/bin/bashIP=`ping 8.8.8.8 -c 3|sed -n "2p" |awk '{print $7}'|cut -f 2 -d "="|cut -f 1 -d "."`L='100'a='tail -1 /opt/text.txt' | sed -n '1p'i='tail -1 /opt/text1.txt' | sed -n '1p'echo "$IP" >>/opt/text.txtecho "$IP" >>/opt/text1.txtif [[ $a -le $L ]]thenmail -s 'yanchi' 邮箱 <ar/log/boot.logelif [[ $a -ge $L ]]thenmail -s 'huifu' 邮箱 <ar/log/boot.logelseecho "ok"fi~我是想把这个延迟数写进一个文件里进行对比 延迟是会报 但是正常后不报 ,而且正常情况下运行还会发送 谁能帮忙看看你对sleep可能有些误解,sleep本身就是使进程睡眠,睡眠的线程不会去占用CPU的。对于一个正在运行的线程来说,他最主要占用的资源就是CPU运行时间和内存。既然SLEEP使其放弃对CPU的进程权限(意思是这段时间内,他不会到CPU执行,如果想了解原因和具体实现可以参考linux内核代码对sleep的实现),那你不想让他占用资源意思就是说:不想让它占内存喽??从定义角度来说,线程不拥有内存资源(从内核中可以查到fork和vfork创建的都是线程,他们都不会新分配内存空间,而是和父进程共享内存空间),所以说你已经没有什么可以释放了。如果还不明白,可以发信息给我。
或许你更希望做的是,压根就不启动这个线程,而是一个小时后启动。因为你没有办法然main主线程1小时后启动这个线程,因为你把握不好时间,那我可以建议你考虑下linux守护线程cron,这个可以达到你1小时后启动的目的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)