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
Ïà¹ØÎĵµ£º
1. HCI²ãÐÒé¸ÅÊö£º
HCIÌṩһÌ×ͳһµÄ·½·¨À´·ÃÎÊBluetoothµ×²ã¡£ÈçͼËùʾ£º
´ÓͼÉÏ¿ÉÒÔ¿´³ö£¬Host Controller Interface(HCI) ¾ÍÊÇÓÃÀ´¹µÍ¨HostºÍModule¡£Hostͨ³£¾ÍÊÇPC£¬ ModuleÔòÊÇÒÔ¸÷ÖÖÎïÀíÁ¬½ÓÐÎʽ£¨USB,serial,pc-cardµÈ£©Á¬½Óµ½PCÉϵÄbluetooth Dongle¡£
ÔÚHostÕâÒ»¶Ë£ºapplication,SDP,L2capµÈÐÒé ......
Linux VNCÔ¶³Ì×ÀÃæ
2009-07-27 09:46
VNC£¬È«³ÆΪVirtual Network Computing£¬ÊÇÒ»¸ö×ÀÃæ¹²Ïíϵͳ¡£ËüµÄ¹¦ÄÜ£¬ÀàËÆÓÚwindowsÖеÄÔ¶³Ì ×ÀÃ湦ÄÜ¡£VNCʹÓÃÁËRFB(Remote FrameBuffer£¬Ô¶³ÌÖ¡»º³å£©ÐÒéÀ´ÊµÏÖÔ¶³Ì¿ØÖÆÁíÍâһ̨¼ÆËã»ú¡£Ëü°Ñ¼üÅÌ¡¢Êó±ê¶¯×÷·¢Ë͵½Ô¶³Ì¼ÆËã»ú£¬²¢°ÑÔ¶³Ì¼ÆËã»úµÄÆÁÄ»·¢»Øµ½±¾µØ£¬ VNC Viewer¿ÉÒÔº ......
------------------------------------------
±¾ÎÄϵ±¾Õ¾Ô´´,»¶ÓתÔØ!
תÔØÇë×¢Ã÷³ö´¦:http://ericxiao.cublog.cn/
------------------------------------------
Ò»:Ç°ÑÔ
¼ÌUHCIµÄÇý¶¯Ö®ºó,ÎÒÃǶÔUSB ControlµÄÔË×÷ÓÐÁËÒ»¶¨µÄÁ˽â.ÔÚ½ÓÏÂÀ´µÄ·ÖÎöÖÐ,ÎÒÃǶÔUSBÉ豸µÄÇý¶¯×öÒ»¸öÈ«ÃæµÄ·ÖÎö,ÎÒÃÇÏÈ´ÓHUBµÄÇý¶¯ËµÆð.¹ ......
Ò»¡¢°²×°SVNĬÈÏ°²×°µ½/usr/local/binÏÂÃæ
¶þ¡¢´´½¨²Ö¿â svnadmin create /home/svnrepo
/root/svnrepoΪËù´´½¨²Ö¿âµÄ·¾¶£¬ÀíÂÛÉÏ¿ÉÒÔÊÇÈκÎĿ¼
Èý¡¢ÐÞ¸ÄÅäÖÃÎļþ/home/svnrepo/conf/svnserve.conf
#È¥µô#[general]Ç°ÃæµÄ#ºÅ
[general]
#ÄäÃû·ÃÎʵÄȨÏÞ£¬¿ÉÒÔÊÇread,write,none,ĬÈÏΪread
anon-access = none
......
------------------------------------------
±¾ÎÄϵ±¾Õ¾Ô´´,»¶ÓתÔØ!
תÔØÇë×¢Ã÷³ö´¦:http://ericxiao.cublog.cn/
------------------------------------------
Ò»:Ç°ÑÔ
CFSµ÷¶ÈÔÚ2.6.23°æ±¾µÄkernelÖб»¼ÓÈë.ÒýÓÃIngo
MolnarµÄÒ»¾ä»°:80%µÄÉè¼Æ¿ÉÒÔÓÃÒ»¾ä»°À´¸ÅÀ¨:CFSÖÐÒ»¸ö”ÀíÏëµÄ¶àÈÎÎñ´¦ÀíÆ÷”.Ò² ......