信号量睡眠问题
2015-08-12 00:00
155 查看
今天测试发现一个bug,当对我负责的模块一起执行两个命令时会有错误,例如"command 1;command 2"。
分析代码发现两个问题,
第一、command 1中存在创建后台进程,当创建后台进程时,本进程继续执行,忽略后台进行执行情况,所以,可能存在后台进行为执行完成,而command 2就开始执行的情况,命令执行顺序错乱。
第二、command 1中发了一个SIGTERM信号,而模块处理函数中存在sleep类型函数,当存在此类函数时,进程会睡眠而让出CPU,此时会继续执行command 2,命令执行顺序错乱。
分析代码发现两个问题,
第一、command 1中存在创建后台进程,当创建后台进程时,本进程继续执行,忽略后台进行执行情况,所以,可能存在后台进行为执行完成,而command 2就开始执行的情况,命令执行顺序错乱。
第二、command 1中发了一个SIGTERM信号,而模块处理函数中存在sleep类型函数,当存在此类函数时,进程会睡眠而让出CPU,此时会继续执行command 2,命令执行顺序错乱。
相关文章推荐
- 红杏: 为学者、程序员、外贸工作者打造的上网加速器,专治各种网站打不开和打开慢,而且,更棒的是,红杏
- 《Crossy Road》效仿《Angry Birds》进行周边商品销售
- 三星电视支付——在电视上购买APP和游戏
- 一起来自制水果甜品吧
- 方法分派
- 线程的阻塞
- 强、弱、软、虚引用
- 强、弱、软、虚引用
- 黑马程序员——面向对象(下)— 重写、多态、抽象、接口
- 分布式呼叫中心系统及其座席控制方法
- Serializable序列化
- CountDownLatch与CyclicBarrier
- 内存管理
- 贪心法
- 工厂模式之抽象工厂模式
- 合成复用原则
- 排列组合
- “ACD及其实现方法”分析及学习
- 复制文件(夹)
- 最长回文子串