linux之睡眠函数(my_sleep)
来源:互联网 发布:企业通讯软件 编辑:程序博客网 时间:2024/05/10 06:50
我们在程序中,很多次用到sleep()函数,让它睡眠几秒后再执行该进程。今天呢,我要给大家实现一下sleep函数。
看看代码哦:
运行结果:
结果中每隔三秒钟,打印一条语句。实现了sleep(3)的功能。
关于sleep函数,在这里,我们首先让主函数调用了my_sleep函数,my_sleep函数又调用了注册处理函数,注册了一个SIGALRM的信号;然后为其设置闹钟,看主函数中的my_sleep函数要睡眠多长时间,调用pause等待,那么什么时候处理信号呢?此时,在用户态由于接收到的信号将其保存起来,使其处于未决状态,进入内核态处理异常,再回到用户态执行SIGALRM信号处理函数,信号处理函数返回时执行特殊的系统调用再次进入内核,处理完异常回用户态,从中断的吓一条指令开始执行。当捕捉到信号之后pause返回-1,再调用alarm(0)清空闹钟,调用sigaction恢复SIGALRM信号以前的处理动作。
外附一张图哈:(很重要哦)
比较短小,欢迎来访哦~~
1 0
- linux之睡眠函数(my_sleep)
- 【Linux】自主实现my_sleep
- Linux睡眠函数
- linux系统编程之信号(二):一些信号发送函数和不同精度的睡眠
- linux系统编程之信号(二):一些信号发送函数和不同精度的睡眠
- linux系统编程之信号(二):一些信号发送函数和不同精度的睡眠
- linux系统编程之信号(二):一些信号发送函数和不同精度的睡眠
- linux 模拟实现my_sleep的两个版本
- 【Linux】实现睡眠函数mysleep
- linux 睡眠函数——sleep(),usleep()
- linux 睡眠函数——sleep(),usleep()
- Linux device driver ---sleeping(睡眠唤醒)
- linux 下阻塞睡眠等待poll函数简单实现
- linux 下阻塞睡眠等待poll函数简单实现
- linux 下阻塞睡眠等待selec函数简单实现
- linux-0.11中进程睡眠函数sleep_on()解析
- linux内核锁机制-不可睡眠锁之RCU
- linux内核编程-可睡眠锁之SRCU
- MFC显示Mat图片
- 2016.7.14比赛总结
- 动态规划——最大连乘子序列
- 树状数组 poj 1990 MooFest
- Android Intent双向传值练习
- linux之睡眠函数(my_sleep)
- mysql jdbc在hive中没有安装导致的两个问题
- MyEclipse+Tomcat+MAVEN+SVN项目完整环境搭建
- 基于改进形态学滤波的点云分类算法------续
- kali信息收集工具之Automater
- 图像数据库
- 设计模式系列之单例模式和观察者模式
- css笔记
- USACO 3.1.1最小网络题解