各位好!请问个可能和线程切换有关的有关问题
各位好!请教个可能和线程切换有关的问题!
我工作中遇到一个问题。用的是linux系统,linux2.6.14。
void DMX_SendMessgae()
{
memcpy();//复制一些数据,一般在500字节左右
printf("22222222222");
//发送消息队列操作
}
void DMX_CallBack()
{
//互斥锁加锁;
printf("111111111");
DMX_SendMessgae();
//互斥锁解锁
}
DMX_CallBack被调用,首先加锁,然后打印11111出来,调用DMX_SendMessgae,拷贝一些数据,打印222222,将拷贝的数据通过消息队列发送出去。
发现从111111打印到222222打印花费了3S的时间!
请教各位什么情况下会出现这种情况?
------解决方案--------------------
应该是缓存的问题吧
你把printf语句改一下,加个\n试试
printf("11111111111\n");
printf("22222222222\n");
------解决方案--------------------
------解决方案--------------------
可以参考这个文章
http://blog.****.net/taolinke/article/details/6295903
我工作中遇到一个问题。用的是linux系统,linux2.6.14。
void DMX_SendMessgae()
{
memcpy();//复制一些数据,一般在500字节左右
printf("22222222222");
//发送消息队列操作
}
void DMX_CallBack()
{
//互斥锁加锁;
printf("111111111");
DMX_SendMessgae();
//互斥锁解锁
}
DMX_CallBack被调用,首先加锁,然后打印11111出来,调用DMX_SendMessgae,拷贝一些数据,打印222222,将拷贝的数据通过消息队列发送出去。
发现从111111打印到222222打印花费了3S的时间!
请教各位什么情况下会出现这种情况?
------解决方案--------------------
应该是缓存的问题吧
你把printf语句改一下,加个\n试试
printf("11111111111\n");
printf("22222222222\n");
------解决方案--------------------
------解决方案--------------------
可以参考这个文章
http://blog.****.net/taolinke/article/details/6295903