阅读:1663回复:3
驱动里的线程如何与应用层的线程同步?
我的程序里创建了2个线程,一个是驱动里的线程,一个是在应用层的线程。驱动里的线程用来接收数据,应用层的线程用来取走数据,我用远程调试工具查看两个线程的优先级都是251,但实际上驱动里的线程执行得要比应用层的线程快,按道理说如果优先级相同,所分配的处理器资源应该是均等才对啊,我想让两个线程的执行速率相同,请问这是怎么回事?
|
|
沙发#
发布于:2007-04-04 18:08
是否可以通过建立信号量CreateMutex来同步呢?
也不知道对不对 |
|
板凳#
发布于:2007-04-05 14:45
可以通过SetEvent 两边共同约定一个事件句柄即可。
但不知效率如何 |
|
地板#
发布于:2007-04-05 21:33
引用第0楼lovealan于2007-04-04 11:08发表的“驱动里的线程如何与应用层的线程同步?”: 1.相同优先级的线程驱动中的要比应用层的优先级更高,驱动中的就是要快. 2.这种同步问题可以参考串口的作法: 串口驱动在被打开时会创建一个EVENT, 应用软件调用串口驱动的一个IOCTL,等待这个EVENT, 当串口驱动收到数据时就设置这个EVENT, 这样,应用程序就知道串口驱动中有数据到达,可以读取了. |
|
|