看门狗在多线程程序中的使用
2011-02-23 11:21
148 查看
近来在wince平台上实现了看门狗的功能,发现在多线程的程序中使用看门狗其实存在的问题很多,有一些想法,欢迎大家拍砖。
1、单线程程序中直接在每次循环中喂狗,可以有效监测程序是否被阻塞,并对应做出反应;在多线程的程序中,通常利用一个低优先级的线程进行喂狗,当某一个高优先级的线程长时间占用CPU资源不释放,将会出现看门狗超时的情况。
2、在多线程的程序中,可能某些线程需要在一段时间内占用CPU完成一些工作,如果时间过长,也可能会导致看门狗超时,这里需要留意。
3、wince平台上用户创建的线程,在没修改以前,其优先级通常是一样的,用于喂狗的低优先级线程很容易出现不被调度的情况。
4、wince的调度采用了时间片轮换、优先级,给多线程程序的看门狗功能实现上带来一一些不确定因素,不知道有没有高人能指点一下,对此做一个比较详细的说明。
1、单线程程序中直接在每次循环中喂狗,可以有效监测程序是否被阻塞,并对应做出反应;在多线程的程序中,通常利用一个低优先级的线程进行喂狗,当某一个高优先级的线程长时间占用CPU资源不释放,将会出现看门狗超时的情况。
2、在多线程的程序中,可能某些线程需要在一段时间内占用CPU完成一些工作,如果时间过长,也可能会导致看门狗超时,这里需要留意。
3、wince平台上用户创建的线程,在没修改以前,其优先级通常是一样的,用于喂狗的低优先级线程很容易出现不被调度的情况。
4、wince的调度采用了时间片轮换、优先级,给多线程程序的看门狗功能实现上带来一一些不确定因素,不知道有没有高人能指点一下,对此做一个比较详细的说明。
相关文章推荐
- 如何使用Java编写多线程程序
- 在.NET客户端程序中使用多线程
- Windows Mobile使用.NET Compact Framework开发多线程程序
- 使用Google CPU Profiler对C/C++多线程程序做性能剖析
- 使用gdb调试多进程多线程程序
- Windows下使用Dev-C++开发基于pthread.h的多线程程序实例
- C# WinForm程序中,使用多线程,在关闭窗体时 怎么关闭窗体的所有线程,使程序退出。
- 使用Actor模型对词频统计程序进行多线程优化-Anran
- android程序中使用多线程的问题
- 在Windows下使用Dev-C++开发基于pthread.h的多线程程序【转】
- 使用 C++11 编写 Linux 多线程程序
- Linux下使用gdb调试多进程与多线程程序
- 多线程 —— 使用锁编写线程安全的程序
- 使用C/C++设计多线程程序监控Lu脚本运行
- 使用 C++11 编写 Linux 多线程程序
- 使用 acl_cpp 库编写多线程程序
- 让你的WPF程序使用多线程——BackgroundWorker
- 第一个多线程程序——使用pthread
- 使用 C++11 编写 Linux 多线程程序
- 使用gdb调试多进程、多线程程序