Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

Linux ºÍ ¶àÏß³Ì

ÿ´Î¶¼ÊÇÓõ½£¬²éһϣ¬Ð´Ï£¬Õâ´ÎÉÔ΢¼Ç¼Ï±ʼǡ£
ºÍThreadÏà¹Ø£¬»ù±¾µÄÓÐ3¸ö¸ÅÄÏ̵߳Ľ¨Á¢ºÍÏú»Ù£»Ïß³ÌËø£»Ïß³ÌÌõ¼þ
¹ØÓÚ½¨Á¢Ị̈߳º
ret = pthread_create(&thread_id, NULL, Do_Thread, &Do_Thread_Para);
// µÚ2²ÎÊýÊÇthread ÊôÐÔ£¬Ò»°ãÎÒ²»ÓÃÉèÖÃ
// µÚ4¸ö²ÎÊýÊÇDo_ThreadµÄÈë¿Ú²ÎÊý£¬Ò»°ãÎÒ´«Ò»¸ö½á¹¹Ìå½øÈ¥
¹ØÓÚÏú»ÙỊ̈߳º
µÈ´ýÏ߳̽áÊø£ºpthread_join
Ç¿ÐÐɱµôỊ̈߳ºpthread_exit
ÈÃÏß³Ì×ÔÉú×ÔÃð£ºpthread_detach
ÎÒÒ»°ãÓõÄÊǵÚÒ»¸ö£º
pthread_join(thread_id, &Do_Thread_ret);
// µÚ¶þ¸ö²ÎÊýÊÇÏ̷߳µ»ØÖµ 
¹ØÓÚÏß³ÌËø£ºµ±ÒªÔÚ¶à¸öÏ̹߳²ÏíijЩ±äÁ¿µÄʱºò£¬¾ÍÐèÒªÓÃËø¡£ÕâÑù¿ÉÒÔ±£Ö¤Ò»¸öʱ¼äµã£¬Ö»ÓÐÒ»¸öÏß³ÌÄܹ»·ÃÎÊÕâ¸öÏß³Ì
pthread_mutex_t mMutexData£»
pthread_mutex_init(&(mMutexData), NULL); // µÚ2¸ö²ÎÊýÊÇËøµÄÊôÐÔ£¬ÎÒÒ»°ãÓÃĬÈÏ£¬NULL
pthread_mutex_lock(&mMutexData);  // ¼ÓËø
pthread_mutex_unlock(&mMutexData) // È¥Ëø
pthread_mutex_destroy(&mMutexData) // Ïú»Ù
¹ØÓÚÌõ¼þ£ºµ±Ä³¸öÏß³ÌÐèÒªµÈ´ýÆäËûÏ̴߳¦ÀíÍêij¸öÊý¾Ý£¨ÔËÐе½Ä³¸öµã£©µÄ»°£¬¾ÍÐèÒªÓÃÌõ¼þ£¬Ò»°ã¼Ó¸öʱ¼ä²ÎÊý£¬ÒÔ·ÀÖ¹ËÀµÈÏÂÈ¥¡£
pthread_cond_t *sConditionData£»
pthread_cond_init(&(sConditionData), NULL)£» // µÚ2¸ö²ÎÊýÊÇËøµÄÊôÐÔ£¬ÎÒÒ»°ãÓÃĬÈÏ£¬NULL
 pthread_mutex_lock(&mMutexData); // Ò»°ãÌõ¼þ±ØÐëºÍËø¼ÓÔÚÒ»ÆðÓã¬ÒÔ±£Ö¤Ìõ¼þ±äÁ¿²»ÖØÈë
  pthread_cond_signal(&sConditionData); // ·¢ÐźÅ
  pthread_mutex_unlock(&mMutexData);
    struct timespec  ts;
    struct timeval sTime;
    struct timezone sTimeZone£»
   long res;
  pthread_mutex_lock(&(pApp->mMutexData));
  gettimeofday(&sTime, &sTimeZone);
  ts.tv_sec = sTime.tv_sec;
  ts.tv_nsec += 5sTime. tv_usec * 1000 £«20*1000*1000; // 20 ms
  ret = pthread_cond_timedwait(&(pApp->sConditionData), &(pApp->mMutexData), &ts); // µÈºò
  if(ret == ETIMEDOUT)
  {
   pthread_mutex_unlock(&(pApp->mMutexData));
  


Ïà¹ØÎĵµ£º

ΪʲôLinuxÏÖÔÚÎÞ·¨ÎüÒýÄêÇῪ·¢Õß

¡¡¡¡Linux»ù½ð»áÖ´Ðж­ÊÂJim ZemlinÉù³ÆLinuxµÄÊг¡µØÎ»Ê®·ÖÎȹ̣¬¾¡¹Ü¼¸Î»LinuxÄں˵Ĺؼüά»¤ÕßÒѾ­Í··¢»¨°×¡£
¡¡¡¡Linux Weekly NewsµÄÖ÷±àJonathan CorbetÔÚÉÏÖܾÙÐеÄLinux»ù½ð»áЭ×÷·å»áÉÏÌôÃ÷ÁËÕâÒ»ÎÊÌ⣬ËûÖ¸³öLinuxÄÚºËÍŶӵÄÄêÁäÒ»Äê±ÈÒ»Ä곤£¬¶øÄêÇáÒ»´úµÄ¿ª·¢ÕßûÓвÎÓë½øÀ´¡£ÎªÊ²Ã´LinuxÏÖÔÚÎÞ·¨ÎüÒýÄêÇῪ·¢ ......

LinuxÄں˴úÂë·ÖÎö slab.c by Áõ¿º


LinuxÄں˴úÂë·ÖÎö slab.c by Áõ¿º liukang@bjut.edu.cn
slab.cÀ´×ÔlinuxÄÚºË2.4.22°æ£¬±¾Îļþ°´ÕÕGNUЭÒé·¢²¼¡£
Ò»¡¢×¼±¸ÖªÊ¶£º
slabµÄ¸ÅÄ
Ìá³öµÄÔ­Òò£ºÓÉÓÚ²Ù×÷ϵͳÔÚÔËÐÐÖл᲻¶Ï²úÉú¡¢Ê¹Óá¢ÊÍ·Å´óÁ¿Öظ´µÄ¶ÔÏó£¬
ËùÒÔ¶ÔÕâÑùµÄÖØ¸´¶ÔÏóµÄÉú³É½øÐиĽø¿ÉÒÔ´ó´óÌá¸ßЧÂÊ
×îÔçÓÉsunµÄ¹¤³ÌʦÌá³ö(1994Äê)²¢Ê×ÏÈÔ ......

LinuxѧϰµÄ·Ïßͼ 2010 04 21

Õýʽ¿ªÊ¼Ó¦ÓÃlinux£¬Êµ¼ù»¹ÊǺÜÖØÒªµÄ£¬ÃüÁî²»ÊDZ³³öÀ´µÄ£¬ÊÇʵ¼ù³öÀ´µÄ
LinuxѧϰµÄ·Ïßͼ£º
1£® ÕÆÎÕÖÁÉÙ50¸öÒÔÉϵij£ÓÃÃüÁî¡£
2£® ÊìϤGnome/KDEµÈX-windows×ÀÃæ»·¾³²Ù×÷ ¡£
3£® ÕÆÎÕ.tgz¡¢.rpmµÈÈí¼þ°üµÄ³£Óð²×°·½·¨
4£® ѧϰÌí¼ÓÍâÉ裬°²×°É豸Çý¶¯³ÌÐò£¨±ÈÈçÍø¿¨£©
5£® ÊìϤGrub/LiloÒýµ¼Æ÷¼°¼òµ¥µÄÐÞ¸´² ......

LinuxÄÚºËÔ´ÂëKconfigÓï·¨·ÖÎö


linuxÔÚ2.6°æ±¾ÒÔºó½«ÅäÖÃÎļþÓÉÔ­À´µÄconfig.in¸ÄΪkconfig£¬¶ÔÓÚkconfigµÄÓï·¨ÔÚ/Documentation/kbuild/kconfig-language.txtÖÐ×öÁËÏêϸµÄ˵Ã÷£¬ÔÚÕâÀï¸ø³ökconfig-language.txtµÄÖÐÎİ档
½éÉÜ
----
ÔÚÅäÖÃÊý¾Ý¿âµÄÅäÖÃÑ¡ÏîÊÇÒÔÊ÷µÄÐÎʽ×éÖ¯µÄ£º
   +- Code maturity level options
   | +- ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ