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

ACEÖеÄThread MutexÔÚlinuxϵÄʹÓÃ

ACE¿âÖÐרÃŶÔÏß³Ìͬ²½ÌṩÁËÁ½¸öÀ࣬һ¸öÊÇACE_Thread_MutexÁíÒ»¸öÊÇACE_REcursive_Thread_Mutex¡£ ÔÚÎÒ¿´ À´£¬ÔÚlinuxϽøÐÐÏß³Ìͬ²½£¬²»ÒªÊ¹ÓÃACE_Thread_Mutex£¬ÓÃACE_REcursive_Thread_Mutex¾Í¿ÉÒÔÁË¡£Ô­ÒòºÜ ¼òµ¥£¬ÒòΪACE_Thread_Mutex²»Ö§³ÖÏß³ÌÖØÈë¡£Ò»µ©ÖØÈë(ͬһ¸öÏ̵߳÷ÓÃÁ½´ÎACE_Thread_Mutex::acquire£©Õâ¸öÏß ³Ì¾ÍËÀËøÁË¡£
Òª¸ãÇå³þÕâ¸öÎÊÌ⣬ÎÒÃÇÐèÒª¸ãÇå³þ²Ù×÷ϵͳÊÇÈçºÎʵÏÖÏß³ÌËøµÄ¡£WindowsϺܼòµ¥£¬ÓÃCRITICAL_SECTIONʵÏÖ¡£ CRITICAL_SECTIONÖ§³ÖÖØÈ룬ËùÒÔWindowsϵÄÏß³Ìͬ²½ÓÃACE_Thread_Mutex»òÕß ACE_REcursive_Thread_Mutex¶¼ÊÇÒ»ÑùµÄ¡£¶ølinuxϲ»Í¬£¬ÊÇÓÃposix thread ¿âʵÏֵġ£pthread µÄmutex·ÖΪÈýÖÖÀàÐÍ£¬fast,recursive,error checking,µ±Ï̵߳÷ÓÃpthread_mutex_lockʱ£¬Èç¹ûÊÇÏß³ÌÖØÈëÕâ°ÑËø£¬Ôò£º
“fast”Ëø ¹ÒÆðµ±Ç°Ïß³Ì.
“resursive”Ëø ³É¹¦²¢Á¢¿Ì·µ»Øµ±Ç°±»Ëø¶¨µÄ´ÎÊý
“error checking” ËøÁ¢¿Ì·µ»ØEDEADLK
ÏÔÈ»ACE_Thread_MutexÊÇÓÃfast·½Ê½ÊµÏֵġ£
ÎÒÓжà¸öƽ̨ (Window,AIX £¬Solaris,hp-ux,Linux)µÄC++¶àÏ̳߳ÌÐòµÄ¿ª·¢¾­Ñé,µ«ÊÇÒ»Ö±¶¼Ã»ÓÐÏëÇå³þÒ»¸ö²»¿ÉÖØÈëµÄÏß³ÌËøÓÐʲôÓã¬ÓÃÕâÑùµÄËøÓÃÆðÀ´Ì«²»·½±ã£¬ÒªºÜСÐÄÁË£¬ Ò»²»Ð¡ÐľͻáËÀËø¡£ËùÒÔÒ»°ãÇé¿ö϶¼ÐèÒªÊÖ¹¤Ð´´úÂ뽫Ëü·â×°³ÉÒ»¸ö¿ÉÒÔÖØÈëµÄËø¡£ACEÖÐÒ²ÌṩÁËÕâÑùÒ»¸ö·â×°£¬ÓÃmutexºÍcondʵÏֵ쬴úÂëÈç ÏÂ:
ACE_OS::recursive_mutex_lock (ACE_recursive_thread_mutex_t *m)
{
#if defined (ACE_HAS_THREADS)
#if defined (ACE_HAS_RECURSIVE_MUTEXES)
return ACE_OS::thread_mutex_lock (m);
#else
ACE_thread_t t_id = ACE_OS::thr_self ();
int result = 0;
// Acquire the guard.
if (ACE_OS::thread_mutex_lock (&m->nesting_mutex_) == -1)
result = -1;
else
{
// If there’s no contention, just grab the lock immediately
// (since this is the common case we’ll optimize for it).
if (m->nesting_level_ =


Ïà¹ØÎĵµ£º

ʵսLinux Bluetooth±à³Ì (Æß) SDPЭÒé

Service Discovery Protocol(SDP)ÌṩһÖÖÄÜÁ¦£¬ÈÃÓ¦ÓóÌÐòÓз½·¨·¢ÏÖÄÄÖÖ·þÎñ¿ÉÓÃÒÔ¼°ÕâÖÖ·þÎñµÄÌØÐÔ¡£
·þÎñ·¢ÏÖЭÒé(SDP»òBluetooth SDP)ÔÚÀ¶ÑÀЭÒéÕ»ÖжÔÀ¶ÑÀ»·¾³ÖеÄÓ¦ÓóÌÐòÓÐÌØÊâµÄº¬Ò⣬·¢ÏÖÄĸö·þÎñÊÇ¿ÉÓõĺÍÈ·¶¨ÕâЩ¿ÉÓ÷þÎñµÄÌØÕ÷¡£SDP¶¨ÒåÁËbluetooth client·¢ÏÖ¿ÉÓÃbluetooth server·þÎñºÍËüÃǵÄÌØÕ÷µÄ·½·¨¡£ ......

ÐÂÈ˵ÄLINUXÊּǣ­£­ÏÔ¿¨°²×°

×î½üºÜÊÇÎÞÁÄ£¬°Ñ±¾±¾ÄóöÀ´»»¸öϵͳ»»¸öÐÄÇé¡£ÓÚÊǾö¶¨°ÑÔ½ÅÜÔ½ÂýµÄD°æXP»»µô¡£Õâ´ÎÏÂÔØÁËFEDORA 12 X64£¬×ÜÊÇÄÃË«ºË64λµÄCPUÀ´ÅÜ32λϵͳÒѾ­ÈÃÎÒ²»Ë¬ºÜ¾ÃÁË¡£
ϵͳװºÃÁËÒÔºó·¢ÏÖÓе㲻¶Ô¾¢£¬£À £À
¶«Î÷ºÃ´ó¡£¿´À´ÊÇ·Ö±æÂʵÄÎÊÌ⣬ϵͳ£­Ê×Ñ¡ÏÏÔʾ......ºÃÏñ¸Ä²»ÁË.
PS:ÔÚlinuxÏÂÃæ²»×°ÏÔ¿¨ÊDz»ÄܸķֱæÂʵÄ
û° ......

[ת]ÈçºÎʵÏÖWindowsÔ¶³ÌÁ¬½ÓLinux²Ù×÷ϵͳ

 
×¼±¸ºÃÁ½Ì¨ÒѾ­ÉÏÍøµÄµçÄÔ¡£
 
1¡¢ÉèÖõȻáÒªÁ¬½Óµ½µÄLinuxϵͳ
 
(1)±ØÐëÊǰ²×°ÁËtelnetÈí¼þµÄϵͳ£¬ÆäÖиÃÈí¼þ·ÖΪÁ½²¿·Ö£¬·Ö±ðÊÇtelnet-clientºÍtelnet-server£¬ÆäÖÐǰÕßĬÈÏÒѾ­×°ºÃ£¬¶øºóÕßÔòÐè×Ô¼º½øÐа²×°¡£ÔÚÕâÀ±ÊÕß×Ô¼ºµÄÊÇRedHatµÄFC6ϵͳ£¬ËùÒÔ¿ÉÒÔÊäÈëÃüÁîyum install telnet-serve ......

ѧϰlinux¶àÏ̱߳à³Ì Ïà¹Ø¸ÅÄî

ѧϰLinux¶à½ø³Ì±à³Ì
Ò»¡¢½ø³ÌµÄ¶¨Ò壺³ÌÐòÖ´ÐкÍ×ÊÔ´¹ÜÀíµÄ×îСµ¥Î»¡£
¶þ¡¢½ø³Ì¿ØÖÆ£º
£¨1£©½ø³Ì±êʶ£º ½ø³Ì±êʶ  ×Ó½ø³ÌºÅ  ¸¸½ø³ÌºÅ
 Í·Îļþ  #include<unistd.h>  #include<unistd.h>
 º¯Êý¹¦ÄÜ  È¡µÃµ±Ç°½ø³ÌµÄ½ø³ÌºÅ  È¡µÃµ±Ç°½ø³ÌµÄ¸¸½ø³ÌºÅ
 º¯ ......

linuxÄÚºËÄ£¿é½âÎö


Linux ¾ÍÊÇͨ³£Ëù˵µÄµ¥Äںˣ¨monolithic kernel£©£¬¼´²Ù×÷ϵͳµÄ´ó²¿·Ö¹¦Äܶ¼±»³ÆÎªÄںˣ¬²¢ÔÚÌØÈ¨Ä£Ê½ÏÂÔËÐС£ËüÓë΢ÐÍÄںˠ²»Í¬£¬ºóÕßÖ»°Ñ»ù±¾µÄ¹¦ÄÜ£¨½ø³Ì¼äͨÐÅ [IPC]¡¢µ÷¶È¡¢»ù±¾µÄÊäÈë/Êä³ö [I/O] ºÍÄÚ´æ¹ÜÀí£©µ±×÷ÄÚºËÔËÐУ¬¶ø°ÑÆäËû¹¦ÄÜ£¨Çý¶¯³ÌÐò¡¢ÍøÂç¶ÑÕ»ºÍÎļþϵͳ£©ÅųýÔÚÌØÈ¨¿Õ¼äÖ®Íâ¡£Òò´Ë£¬Äú¿ÉÄÜÈ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ