Windows CE基于优先级的设置来选择将要运行的线程,高优先级的线程将比低优先级的线程更加优先被调度。WinCE系统支持0~255共256个优先级,其中0优先级最高,255优先级最低,0~248属于实时性优先级。WinCE系统中线程的优先级层次如下:
0~96: 高实时性应用程序的线程
97~152:驱动程序线程
153~247:低实时性应用程序的线程
248~255:非实时应用程序的线程
在英创提供的ARM9系统嵌入式板卡中,都预装了WinCE 5.0 内核,常用的通讯接口的驱动也是按照上述的优先级层次来设置规划的。
101: USB 键盘
103: 串口驱动
109: 触摸键
116: NDIS(网络)
在进行WinCE应用程序开发时,利用CreateThread(…)函数创建的应用线程,其优先级缺省为 251,即THREAD_PRIORITY_NORMAL。如果需要对线程的优先级进行调整,可以调用相应的函数来操作。设置和获得一个线程的优先级,可以调用函数CeSetThreadPriority和函数CeGetThreadPriority,这两个函数对于所有的256个优先级都是可用的。这里需要注意的是,还有两个函数也可以用:函数SetThreadPriority和函数GetThreadPriority,但是它们只能设置或获取最低的8个优先级,即248~255,这8个优先级对应WinCE早期版本的8个优先级。
0~96: 高实时性应用程序的线程
97~152:驱动程序线程
153~247:低实时性应用程序的线程
248~255:非实时应用程序的线程
在英创提供的ARM9系统嵌入式板卡中,都预装了WinCE 5.0 内核,常用的通讯接口的驱动也是按照上述的优先级层次来设置规划的。
101: USB 键盘
103: 串口驱动
109: 触摸键
116: NDIS(网络)
在进行WinCE应用程序开发时,利用CreateThread(…)函数创建的应用线程,其优先级缺省为 251,即THREAD_PRIORITY_NORMAL。如果需要对线程的优先级进行调整,可以调用相应的函数来操作。设置和获得一个线程的优先级,可以调用函数CeSetThreadPriority和函数CeGetThreadPriority,这两个函数对于所有的256个优先级都是可用的。这里需要注意的是,还有两个函数也可以用:函数SetThreadPriority和函数GetThreadPriority,但是它们只能设置或获取最低的8个优先级,即248~255,这8个优先级对应WinCE早期版本的8个优先级。
本文介绍了WindowsCE系统中线程优先级的概念、优先级范围及层次划分,以及如何在英创提供的ARM9系统嵌入式板卡中设置不同优先级的线程,包括常见通讯接口驱动的优先级规划。详细阐述了通过CreateThread()函数创建应用线程的默认优先级,并说明了如何调整线程优先级以优化系统性能。
667

被折叠的 条评论
为什么被折叠?



