LinuxÒÁµéÔ°ÂÛ̳'s Archiver

dynamic221 ·¢±íÓÚ 2007-9-19 15:15

@@@ʵʱÏß³ÌÎÊÌâÇë½Ì@@@

´òËãÔÚÒ»¸öÏß³ÌÖнøÐмÆÊ±,¹Ê´Ë¿ªÁËÒ»¸öÏß³ÌÈçÏÂ
void *thread_child (void *data)
{
   int count = 1;
   struct timeval tStart, tEnd;
   long timeuse;
   while(1)
   {
      count++;
      gettimeofday(&tStart,NULL);//È¡µÃ¿ªÊ¼µÄʱ¼ä
      usleep(1000);
      gettimeofday(&tEnd,NULL);
      timeuse = 1000000*(tEnd.tv_sec - tStart.tv_sec)   + (tEnd.tv_usec - tStart.tv_usec);
      printf("time:%d\n",timeuse);
   }
}
1¡¢Èç¹û¸ÃÏ̶߳¨ÒåΪÆÕͨÏß³Ì,ÔòÈç¹û³ÌÐòÖдæÔÚÁ½¸öÏß³ÌÔËÐÐ,usleepµÄʱ¼ä<10000us,Ôò´òÓ¡³öµÄtimeΪ20ms×óÓÒ,
2¡¢Èç¹û¸ÃÏ̶߳¨ÒåΪSCHED_RRÏß³Ì,ÁíÍâÒ»¸öÏ̶߳¨ÒåΪÆÕͨÏß³Ì,ÔòÈç¹û³ÌÐòÖеÄusleep²¿·ÖµÄ˯Ãßʱ¼ä<2000us´òÓ¡³öµÄtime¸úusleepÖеÄÊýÖµ·¶Î§½Ó½ü,µ«ÊÇÖ»Òª³¬¹ý2000us,¼´Ê¹ÊÇ2010us,´òÓ¡³öµÄʱ¼äÒ²ÊÇ20ms×óÓÒ,
¶ÔÓÚ1ÎÒÈÏΪ£¬Ö»Òªµ÷ÓÃsleepÖ÷¶¯×èÈûỊ̈߳¬ÔòÏ´ε÷ÓõÄʱ¼äÓ¦¸ÃÊÇϵͳµÄÒ»¸öʱ¼äƬ֮ºó£¬£¨ÎÒµÃlinux°æ±¾Îª2¡£4°å£¬Ò»¸öʱ¼äƬΪ10ms£¬£©£¬ËùÒÔÖ»ÒªusleepÖеÄÊýÖµ²»³´¹ýÒ»¸öʱ¼äƬ,³ÌÐò´òÓ¡µÄʱ¼äÒ²¾ÍÊÇÒ»¸öʱ¼äƬ,²»ÖªÎÒµÃÀí½â¶Ô²»?,Èç¹ûÀí½âµÄ¶ÔΪʲôϵͳʱ¼äƬΪ10ms,¼ä¸ôȷʵ20msÄØ?
¶ÔÓÚ2µÄǰ°ë²¿·ÖÎÒµÄÀí½â¸ÃÏß³Ì˯ÃßÍê±ÏºóÒòΪÓÅÏȼ¶¸ß,ËùÒÔÁ¢¿ÌÇÀÕ¼ÆäËûÏ̵߳Äʱ¼ä,ËùÒÔ´òÓ¡µÄʱ¼ä¸ú˯ÃßµÄʱ¼äÏà½Ó½ü,µ«ÊÇΪʲô´óÓÚ2000ºó,´òÓ¡µÄʱ¼ä±ä³ÉÁË20ms¾ÍÀí½â²»ÁËÁË,Ï£ÍûÄÄλ´óÏÀÄÜÖ¸µãÒ»ÏÂ,ÎÒ¾õµÃʵʱÏß³ÌÓ¦¸ÃËæÊ±¿ÉÒÔÇÀÕ¼±ðµÄÆÕͨÏ̵߳Äʱ¼äÔËÐÐ,ËùÒÔÓ¦¸ÃËùÓеÄÇé¿ö,´òÓ¡µÄʱ¼ä¶¼¸ú˯ÃßµÄʱ¼äÒ»Ö²ŶÔ,µ«ÊÇÊÔÑé½á¹û²»¶Ô,Çë´ó¼ÒÖ¸µã°¡.

[[i] ±¾Ìû×îºóÓÉ dynamic221 ÓÚ 2007-9-19 15:24 ±à¼­ [/i]]

zltjiangshi ·¢±íÓÚ 2007-10-18 20:49

SCHED_RRÖ®´ú±íÊÇʹ**תµ÷¶È²ßÂÔ£¬²¢²»Ò»¶¨ÓÅÏȼ¶¾Í¸ß£¬³ý·ÇÄãÏÔʽÉ趨ÁËÓÅÏȼ¶£¬ÖÁÓÚ20ms£¬ÎÒ»³ÒÉÄãµÄϵͳ±¾Éí¾ÍÊÇ20msµÄʱ¼äƬ£¬ËäÈ»2.4ÄÚºËĬÈÏΪ10ms£¬µ«ÕâÊÇ¿ÉÒÔÐ޸ĵġ£

[[i] ±¾Ìû×îºóÓÉ zltjiangshi ÓÚ 2007-10-26 20:37 ±à¼­ [/i]]

Ò³: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.