码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Linux系统编程 102 alarm函数


    其他几个发信号的函数

    raise  abort;

    重点要掌握alarm信号和settimer函数

    alarm函数

    用于设置定时器;在指定seconds后,内核会给当前进程发送14)SIGALRM信号,进程收到该信号,默认动作是终止进程。

    每个进程有且只有唯一一个定时器。(重点) 

    返回值:上一次闹钟剩余的时间

    常用:alarm(0)用于取消定时器(重置闹钟),返回久闹钟剩余的时间。

    alarm(5)->3s  -> alarm(4)  ps:返回2 -> 5s ->alarm(5) ps:这个时候返回0 ->alarm(0) ps:返回5.

    注意:定时和进程状态无关(自然定时法)! 就绪、运行、挂起(阻塞、暂停)、终止、僵尸...无论进程处于何种状态,alarm都计时。

    练习:编写程序,测试1s中,能数多少个函数。

    1. #include
    2. #include
    3. int main(void)
    4. {
    5. int i;
    6. alarm(1);
    7. for (i =0; ;i++)
    8. {
    9. printf("%d\n",i);
    10. }
    11. return 0;
    12. }

    执行结果:

    使用time命令查看程序执行的时间。 程序运行的瓶颈在于IO,优化程序,首选优化IO.

    实际执行的时间 = 系统时间 + 用户时间 + 等待时间

     real:程序实际执行的时间

    user: 表示程序运行在用户空间的消耗的时间。

    sys: 表示程序运行在内核空间的消耗的时间。

    可以发现 user + sys 不等于 1s;只有0.3s左右,其他的0.7s是等待时间。

    程序运行的瓶颈在于IO,优化程序,首选IO.

    1. ubuntu@ubuntu:~/code/test$ ./a.out > out
    2. Alarm clock
    3. ubuntu@ubuntu:~/code/test$ vim out

    执行结果:

     

    alarm 函数:

     定时发送SIGALRM给当前的进程。

    1. SYNOPSIS
    2.        #include
    3.        unsigned int alarm(unsigned int seconds);

    seconds: 定时秒数;

    返回值:上一次定时剩余时间;


     

  • 相关阅读:
    SpringBoot通过@Cacheable注解实现缓存功能
    java集合类史上最细讲解 - HashTable,Properties篇
    Oracle SQL执行计划(1)
    联邦学习开源框架FATE架构
    CRM客户关系管理系统源码 PHP客户管理系统源码
    flutter项目中常用第三方模块
    RK3399平台开发系列讲解(PCI/PCI-E)5.52、PCIE RC侧设备树及配置
    印尼医疗龙头企业Halodoc的数据平台转型之数据平台V2.0
    vue中三种for循环与高阶函数(filter、map、reduce)的使用
    从迷之自信到逻辑自信(简版)
  • 原文地址:https://blog.csdn.net/sinat_36070482/article/details/127117227
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号