LinuxÏÂthread±à³Ì£¨Èý£©
×÷ÕߣºSam£¨Õç·å£© sam_cdoe@hotmail.com
1.´´½¨thread.
int pthread_create(pthread_t *restrict thread, const pthread_attr_t *restrict attr,
void *(*start_routine)(void*), void *restrict arg);
²ÎÊý1£ºpthread_t *restrict thread£º´´½¨threadµÄthread ID.
²ÎÊý2£ºconst pthread_attr_t *restrict attr£º´´½¨Ï̵߳ÄÊôÐÔ¡£
²ÎÊý3£ºvoid *(*start_routine)(void*)£ºthread·þÎñ³ÌÐò¡£
²ÎÊý4£ºvoid *restrict arg£ºthread·þÎñ³ÌÐò²ÎÊý¡£
2. µÈ´ýÄ¿±êÏß³ÌÖÕÖ¹£º
pthread_join() º¯Êý»áÒ»Ö±×èÈûµ÷ÓÃỊ̈߳¬Ö±µ½Ö¸¶¨µÄÏß³ÌÖÕÖ¹¡£
Ö¸¶¨µÄÏ̱߳ØÐëλÓÚµ±Ç°µÄ½ø³ÌÖУ¬¶øÇÒ²»µÃÊÇ·ÖÀëÏ̡߳£ËùÓд´½¨Ê±ÊôÐÔΪPTHREAD_CREATE_JOINABLEµÄ·Ç·ÖÀëthread. ×îÖÕ¶¼ÐèÒªµ÷ÓÃpthread_join() or pthread_detach() ¡£ÕâÑùthreadËùÕ¼×ÊÔ´ºÍ Thread ID ²Å±»ÊÍ·Å¡£
3. ·ÖÀëthread:
int pthread_detach(pthread_t thread);
pthread_detach()Ö¸³öµ±thread ½áÊøÊ±£¬threadËùÕ¼×ÊÔ´ºÍThread ID»á±»ÊͷźÍÔÙÀûÓá£Èç¹ûµ÷ÓÃpthread_detach()ʱ£¬threadûÓнáÊø£¬Ëü²¢²»»áµ¼ÖÂthreadÍ˳ö¡£ËüÖ»¶ÔPTHREAD_CREATE_JOINABLE ·Ç·ÖÀëthreadÓÐЧ¡£
4. »ñÈ¡thread ID:
pthread_t pthread_self(void)£»
·µ»Øµ÷ÓÃthreadµÄthread ID.
5. ±È½Ïthread ID:
int pthread_equal(pthread_t t1, pthread_t t2);Èç¹û tid1 ºÍ tid2 ÏàµÈ£¬pthread_equal() ½«·µ»Ø·ÇÁãÖµ£¬·ñÔò½«·µ»ØÁã¡£
6. Ïòthread·¢Ðźţº
int pthread_kill(pthread_t thread, int sig);
tid ËùÖ¸¶¨µÄÏ̱߳ØÐëÓëµ÷ÓÃÏß³ÌÔÚͬһ¸ö½ø³ÌÖС£sig ²ÎÊý±ØÐëÀ´×Ô signal(5) ÌṩµÄÁÐ±í¡£
7. Í˳öỊ̈߳º
void pthread_exit(void *value_ptr);
pthread_exit()ÓÃÀ´ÖÕÖ¹µ÷ÓÃthread²¢ÖÃλvalue_ptr.Õâ¸öÖµ»á½»¸øpthread_join¡£
ThreadµÄÈ¡Ïû£º
ͬһ½ø³ÌÄÚ£¬Ä³¸öThread¿ÉÒÔÏòÆäËüthread·¢ËÍÈ¡ÏûÒªÇó£¬ÒªÇóÄ¿±êthreadÍ˳öÔËÐС£
È¡ÏûÇëÇóµÄ´¦Àí·½Ê½È¡¾öÓÚÄ¿±êÏ̵߳Ä״̬¡£×´Ì¬ÓÉÒÔÏÂÁ½¸öº¯ÊýÈ·¶¨£ºpthread_setcancelstate() ºÍ pthread_setcanceltype()¡£
pthread_setcancelstate() ÆôÓûò½ûÓÃÏß³ÌÈ¡Ïû¹¦ÄÜ¡£´´½¨Ïß³Ìʱ£¬È±Ê¡Çé¿öÏÂÏß³ÌÈ¡Ïû¹¦ÄÜ´¦ÓÚÆôÓÃ״̬¡£
pthread_setcanceltype() ¿ÉÒÔ½«È¡ÏûÀàÐÍÉèÖÃΪÑÓ³Ù»òÒ첽ģʽ¡£´´½¨Ïß³Ìʱ£¬È±Ê¡Çé¿öÏ»ὫȡÏûÀàÐÍÉèÖÃΪÑÓ³Ùģʽ¡£ÔÚÑÓ³ÙģʽÏ£¬Ö»ÄÜÔÚÈ¡ÏûµãÈ¡ÏûÏ̡߳£ÔÚÒì
Ïà¹ØÎĵµ£º
£¨L2CAPÐÒé¼ò½é£¬L2CAPÔÚBlueZÖеÄʵÏÖÒÔ¼°L2CAP±à³Ì½Ó¿Ú£©
Ò»£ºL2CAPÐÒé¼ò½é£º
Logical Link Control and Adaptation Protocol(L2CAP)
Âß¼Á¬½Ó¿ØÖƺÍÊÊÅäÐÒé (L2CAP) ΪÉϲãÐÒéÌá¹©ÃæÏòÁ¬½ÓºÍÎÞÁ¬½ÓµÄÊý¾Ý·þÎñ£¬²¢Ìṩ¶àÐÒ鹦ÄܺͷָîÖØ×é²Ù×÷¡£L2CAP ³äÐíÉϲãÐÒéºÍÓ¦ÓÃÈí¼þ´«ÊäºÍ½ÓÊÕ×î´ó³¤¶ÈΪ 64K µÄ L2CAP Ê ......
1. ϵͳÆô¶¯ºó,ÔÚ³öÏÖgrub»ÃæÊ±£¬ÓÃÉÏϼüÑ¡ÖÐÄãÆ½Ê±Æô¶¯linuxµÄÄÇÒ»ÏȻºó°´e¼ü
2. ÔÙ´ÎÓÃÉÏϼüÑ¡ÖÐÄãÆ½Ê±Æô¶¯linuxµÄÄÇÒ»Ïî(ÀàËÆÓÚkernel/boot mlinuz-2.4.18-14 ro root=LABEL=/)£¬È»ºó°´e¼ü
3. ÐÞ¸ÄÄãÏÖÔÚ¼ûµ½µÄÃüÁîÐУ¬¼ÓÈësingle£¬½á¹ûÈçÏ£º
kernel /boot mlinuz-2.4.18-14 single ro ......
refer:http://www.cnblogs.com/diylab/archive/2008/04/24/1169771.html
Õâ¸ömakefile¿ÉÓÃÓÚ±àÒë´ó¶àÊýµÄc++¹¤³Ì¡£
Äã¿ÉÒÔ¸ù¾ÝÐèÒªÐÞ¸ÄÏÂÃæµÄ²ÎÊý£º
VPATH: Ô´ÎļþµÄÎļþ·¾¶¡£¶à¸öÎļþ¼Ð·¾¶Óÿոñ·Ö¸ô
OBJ£º ±àÒëÄ¿±êËùÐèÒªµÄ.oÎļþ
µ±È»£¬ÄãÒ²¿ÉÒÔ²»¸Ä¶¯´ËÎļþ£¬¶øÖ±½ÓÔÚ make ÃüÁîµÄ²ÎÊýÖÐÖ¸¶¨
È磺
make ......
ÐÞ¸´Linuxϵͳ
1£®Ê¹Óü±¾ÈÅÌ×é½øÐÐά»¤
¼±¾ÈÅÌ×飨Ҳ³ÆÎªboot/rootÅÌ×飩£¬ÊÇϵͳ¹ÜÀíÔ±±Ø²»¿ÉÉٵŤ¾ß¡£ÓÃËü¿ÉÒÔ¶ÀÁ¢µØÆô¶¯ºÍÔËÐÐÒ»¸öÍêÕûµÄLinuxϵͳ¡£Êµ¼Ê ÉÏ£¬¼±¾ÈÅÌ×éÖеĵÚ2ÕÅÅÌÉϾÍÓÐÒ»¸öÍêÕûµÄLinuxϵͳ£¬°üÀ¨rootÎļþϵͳ£»¶øµÚ1ÕÅÅÌÔò´æ·ÅÁË¿ÉÆô¶¯µÄÄںˡ£
ʹÓü±¾ÈÅÌ×éά»¤ÏµÍ³ºÜ¼òµ¥¡£Ö»ÐèÓÃÕâÁ½ÕÅÅÌÆô¶ ......
×÷Õߣº Sam£¨Õç·å£© sam_code@hotmail.com
threadÊôÐÔ£º
pthread_create()ÖУ¬µÚ¶þ¸ö²ÎÊý£¨pthread_attr_t£©Îª½«Òª´´½¨µÄthreadÊôÐÔ¡£Í¨³£Çé¿öÏÂÅäÖÃΪNULL£¬Ê¹ÓÃȱʡÉèÖþͿÉÒÔÁË¡£
µ«Á˽âÕâЩÊôÐÔ£¬ÓÐÀûÓÚ¸üºÃµÄÀí½âthread.
ÊôÐÔ¶ÔÏó£¨pthread_attr_t£©ÊDz»Í¸Ã÷µÄ£¬¶øÇÒ²»ÄÜͨ¹ý¸³ÖµÖ±½Ó½øÐÐÐ޸ġ£ÏµÍ³ÌṩÁËÒ»×麯Êý ......