LinuxÏß³Ìͬ²½: »¥³âÁ¿(mutex)
»¥³âÁ¿´Ó±¾ÖÊÉÏ˵¾ÍÊÇÒ»°ÑËø, Ìṩ¶Ô¹²Ïí×ÊÔ´µÄ±£»¤·ÃÎÊ.
1. ³õʼ»¯:
ÔÚLinuxÏÂ, Ï̵߳Ļ¥³âÁ¿Êý¾ÝÀàÐÍÊÇpthread_mutex_t. ÔÚʹÓÃǰ, Òª¶ÔËü½øÐгõʼ»¯:
¶ÔÓÚ¾²Ì¬·ÖÅäµÄ»¥³âÁ¿, ¿ÉÒÔ°ÑËüÉèÖÃΪPTHREAD_MUTEX_INITIALIZER, »òÕßµ÷ÓÃpthread_mutex_init.
¶ÔÓÚ¶¯Ì¬·ÖÅäµÄ»¥³âÁ¿, ÔÚÉêÇëÄÚ´æ(malloc)Ö®ºó, ͨ¹ýpthread_mutex_init½øÐгõʼ»¯, ²¢ÇÒÔÚÊÍ·ÅÄÚ´æ(free)ǰÐèÒªµ÷ÓÃpthread_mutex_destroy.
ÔÐÍ:
int pthread_mutex_init(pthread_mutex_t *restrict mutex, const pthread_mutexattr_t *restric attr);
int pthread_mutex_destroy(pthread_mutex_t *mutex);
Í·Îļþ: <pthread.h>
·µ»ØÖµ: ³É¹¦Ôò·µ»Ø0, ³ö´íÔò·µ»Ø´íÎó±àºÅ.
˵Ã÷: Èç¹ûʹÓÃĬÈϵÄÊôÐÔ³õʼ»¯»¥³âÁ¿, Ö»Ðè°ÑattrÉèΪNULL. ÆäËûÖµÔÚÒÔºó½²½â.
2. »¥³â²Ù×÷:
¶Ô¹²Ïí×ÊÔ´µÄ·ÃÎÊ, Òª¶Ô»¥³âÁ¿½øÐмÓËø, Èç¹û»¥³âÁ¿ÒѾÉÏÁËËø, µ÷ÓÃÏ̻߳á×èÈû, Ö±µ½»¥³âÁ¿±»½âËø. ÔÚÍê³ÉÁ˶Թ²Ïí×ÊÔ´µÄ·ÃÎʺó, Òª¶Ô»¥³âÁ¿½øÐнâËø.
Ê×ÏÈ˵һϼÓËøº¯Êý:
Í·Îļþ: <pthread.h>
ÔÐÍ:
int pthread_mutex_lock(pthread_mutex_t *mutex);
int pthread_mutex_trylock(pthread_mutex_t *mutex);
·µ»ØÖµ: ³É¹¦Ôò·µ»Ø0, ³ö´íÔò·µ»Ø´íÎó±àºÅ.
˵Ã÷: ¾ßÌå˵һÏÂtrylockº¯Êý, Õâ¸öº¯ÊýÊÇ·Ç×èÈûµ÷ÓÃģʽ, Ò²¾ÍÊÇ˵, Èç¹û»¥³âÁ¿Ã»±»Ëø×¡, trylockº¯Êý½«°Ñ»¥³âÁ¿¼ÓËø, ²¢»ñµÃ¶Ô¹²Ïí×ÊÔ´µÄ·ÃÎÊȨÏÞ; Èç¹û»¥³âÁ¿±»Ëø×¡ÁË, trylockº¯Êý½«²»»á×èÈûµÈ´ý¶øÖ±½Ó·µ»ØEBUSY, ±íʾ¹²Ïí×ÊÔ´´¦ÓÚæ״̬.
ÔÙ˵һϽâËùº¯Êý:
Í·Îļþ: <pthread.h>
ÔÐÍ: int pthread_mutex_unlock(pthread_mutex_t *mutex);
·µ»ØÖµ: ³É¹¦Ôò·µ»Ø0, ³ö´íÔò·µ»Ø´íÎó±àºÅ.
3. ËÀËø:
ËÀËøÖ÷Òª·¢ÉúÔÚÓжà¸öÒÀÀµËø´æÔÚʱ, »áÔÚÒ»¸öÏß³ÌÊÔͼÒÔÓëÁíÒ»¸öÏß³ÌÏ෴˳ÐòËø×¡»¥³âÁ¿Ê±·¢Éú. ÈçºÎ±ÜÃâËÀËøÊÇʹÓû¥³âÁ¿Ó¦¸Ã¸ñÍâ×¢ÒâµÄ¶«Î÷.
×ÜÌåÀ´½², Óм¸¸ö²»³ÉÎĵĻù±¾ÔÔò:
¶Ô¹²Ïí×ÊÔ´²Ù×÷ǰһ¶¨Òª»ñµÃËø.
Íê³É²Ù×÷ÒÔºóÒ»¶¨ÒªÊÍ·ÅËø.
¾¡Á¿¶Ìʱ¼äµØÕ¼ÓÃËø.
Èç¹ûÓжàËø, Èç»ñµÃ˳ÐòÊÇABCÁ¬»·¿Û, ÊÍ·Å˳ÐòÒ²Ó¦¸ÃÊÇABC.
Ï̴߳íÎó·µ»ØÊ±Ó¦¸ÃÊÍ·ÅËüËù»ñµÃµÄËø.
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>
#include <errno.h>
pthread_mutex_t
Ïà¹ØÎĵµ£º
£¨L2CAPÐÒé¼ò½é£¬L2CAPÔÚBlueZÖеÄʵÏÖÒÔ¼°L2CAP±à³Ì½Ó¿Ú£©
Ò»£ºL2CAPÐÒé¼ò½é£º
Logical Link Control and Adaptation Protocol(L2CAP)
Âß¼Á¬½Ó¿ØÖƺÍÊÊÅäÐÒé (L2CAP) ΪÉϲãÐÒéÌá¹©ÃæÏòÁ¬½ÓºÍÎÞÁ¬½ÓµÄÊý¾Ý·þÎñ£¬²¢Ìṩ¶àÐÒ鹦ÄܺͷָîÖØ×é²Ù×÷¡£L2CAP ³äÐíÉϲãÐÒéºÍÓ¦ÓÃÈí¼þ´«ÊäºÍ½ÓÊÕ×î´ó³¤¶ÈΪ 64K µÄ L2CAP Ê ......
linuxÖÐÓÃshell»ñÈ¡×òÌì¡¢Ã÷Ìì»ò¶àÌìǰµÄÈÕÆÚ:
ÔÚLinuxÖжÔman date -d ²ÎÊý˵µÄ±È½ÏÄ£ºý,ÒÔϾÙÀý½øÒ»²½ËµÃ÷:
# -d, --date=STRING display time described by STRING, not `now’
[root@Gman root]# date -d next-day +%Y%m%d #Ã÷ÌìÈÕÆÚ
20091024
[root@Gman root]# date -d last-day +%Y%m%d #×òÌìÈÕÆÚ
20091 ......
------------------------------------------
±¾ÎÄϵ±¾Õ¾Ô´´,»¶Ó×ªÔØ!
×ªÔØÇë×¢Ã÷³ö´¦:http://ericxiao.cublog.cn/
------------------------------------------
Ò»:ǰÑÔ
CFSµ÷¶ÈÔÚ2.6.23°æ±¾µÄkernelÖб»¼ÓÈë.ÒýÓÃIngo
MolnarµÄÒ»¾ä»°:80%µÄÉè¼Æ¿ÉÒÔÓÃÒ»¾ä»°À´¸ÅÀ¨:CFSÖÐÒ»¸ö”ÀíÏëµÄ¶àÈÎÎñ´¦ÀíÆ÷”.Ò² ......
ÒÔǰһֱ¸ãC++½øÐÐC/S¿ª·¢£¬Ôø¾µÄÏë·¨ÊÇÈç¹ûÓлú»á£¬Ñ§Ñ§¸ãÍøÕ¾ºÍǶÈëʽ¿ª·¢
ûÏëµ½ÕÒµ½¹¤×÷µÄµÚ2Ìì¾ÍÓÐÁË×öÍøÕ¾µÄ»ú»á£¬Ò²×¬µ½ÁË×Ô¼º´óѧÆÚ¼ä×î¸ßµÄÒ»·Ý¹¤×Ê£¬10Ìì1000¿é
ÔÚʲôµÄ¶¼²»»áµÄÇé¿öÏ£¬¾¡È»´ðÓ¦ÈËÊ´¦µÄÀÏʦһ¸öÐÇÆÚдºÃÍøÕ¾µÄºǫ́
ÎÒ³ÐÈÏÕÒµ½¹¤×÷ºó×Ô¼ºÊÇÓеã¿ñÁË£¬ºÜ¶àÊÂûעÒâµ½£¬ºÜ¶àʺó»Ú²»ÁË¡£¡£¡£
......