LinuxÏß³Ìpthread±Ê¼Ç
ÔÚÔĶÁNginxµÄ´úÂë.ÏÈÅöµ½µÄÊÇÏ̲߳¿·ÖµÄ
ÒòΪ´Ómain¿ªÊ¼×îÔçÊÇ×öÏ̲߳¿·ÖµÄ¹¤×÷
ʵϰһÏÂpthread·½ÃæµÄÄÚÈÝ
#include "pthread.h"
#include "stdio.h"
void* thread_test(void* ptr)
{
while(1)
printf("i am child pthread\n");
}
int main()
{
pthread_t tid;
pthread_create(&tid, NULL, thread_test, NULL);
while(1)
printf("i am main pthread\n");
return 0;
}
Õâ¶Î´úÂëÊÇ´Ó±ðÈËÕâÀïÕÒµ½µÄ.²»¹ý°Ñµ±ÖеÄbugÐÞÕýÁË
±àÒëÃüÁîÐÐ
./gcc -lpthread -o pthread ./pthread.c
¼ÇסÐèÒª¼Ó-lpthread²ÎÊý,·ñÔòpthreadµÄÏà¹Øº¯Êý»á±¨¸æËµÕÒ²»µ½
¹ØÓÚpthread_createº¯Êý
ÓÐÈËÌáµ½Ëû´´½¨µÄ×ÓÏ̻߳ñÈ¡µ½µÄpidºÍÖ÷Ï̵߳IJ»Ò»ÖÂ
ÕâÊÇÓÉÓÚÔçÆÚÄں˰汾ÖеÄʵÏÖ²»Í¬.ÓÉÓÚpthreadÖ»ÊÇʹÓÃÇáÁ¿½ø³ÌȥģÄâÏß³Ì
ÔçÆÚµÄpthreadʵÏÖÊÇlinuxthread¿â,ÿ¸öÇáÁ¿½ø³Ì»á±»ÏÔʾÔÚps½ø³ÌÁбíÖÐ
¶ø×îеÄpthreadʵÏÖÊÇNPTL,ËùÓÐÇáÁ¿½ø³ÌÔÚ½ø³ÌÁбíÖÐÖ»±íÏÖΪÖ÷Ï̵߳ÄPIDºÅ.
Æäʵÿ¸öÏ̵߳ÄpidÊDz»Í¬µÄ.µ«ÊÇpthread¿âÈÃͨ¹ýpthread_create´´½¨µÄÏ̵߳ÄpidÓëÖ÷pidÒ»Ö¶øÒÑ.
¼ÈȻÿ¸ö½ø³Ì¶¼ÓжÀÁ¢µÄ½ø³Ì,ÄÇôʵ¼ÊµÄÏ̵߳Ľø³ÌºÅÔÚÄÄÀï¿ÉÒÔ¿´µ½ÄØ?
¾¹ýÊÔÑé
ÎÒ·¢ÏÖÔÚ/proc/[PID]/taskĿ¼ÏÂ
±£´æÓд˽ø³ÌËùÓеÄpthreadµÄʵ¼Ê½ø³ÌºÅ
ÀýÈçÉÏÃæµÄÀý³Ì,µ±ÎÒÃÇÖ´ÐÐÖ®ºó
ÎÒÃÇÔÚpsÖп´µ½µÄ½ø³ÌºÅÈç¹ûÊÇ20632
ÄÇô½øÈë/proc/20632/task
ÎÒÃÇ¿ÉÒÔ¿´µ½ÓÐ20632ÒÔ¼°20633Á½¸öpid
Æäʵ20633¾ÍÊǵڶþ¸ö´´½¨³öÀ´µÄÇáÁ¿½ø³Ì
¸ù¾ÝPOSIXµÄÒªÇó
ÎÒÃÇɱµôÈκÎÒ»¸öÏß³Ì,Æäʵ¶¼»á°ÑSIGNO·¢Ë͵½ËùÓеÄÏß³ÌÖÐ.
ËùÒÔÎÒÃÇÈç¹ûÖ´ÐÐkill -9 20633
ÆäʵÄã»á·¢ÏÖÕû¸ö³ÌÐò¶¼Í˳öÁË
ÏÂÃæÎÒ°ÑPOSIX¶ÔÏß³ÌʵÏÖµÄÒªÇóÌù³öÀ´(Õⲿ·Ö²Î¿¼ÁËlinuxÏß³ÌdzÎö)
1, ²é¿´½ø³ÌÁбíµÄʱºò, Ïà¹ØµÄÒ»×étask_structÓ¦µ±±»Õ¹ÏÖΪÁбíÖеÄÒ»¸ö½Úµã;
2, ·¢Ë͸øÕâ¸ö”½ø³Ì”µÄÐźÅ(¶ÔÓ¦killϵͳµ÷ÓÃ), ½«±»¶ÔÓ¦µÄÕâÒ»×étask_structËù¹²Ïí, ²¢ÇÒ±»ÆäÖеÄÈÎÒâÒ»¸ö”Ï߳̔´¦Àí;
3, ·¢Ë͸øÄ³¸ö”Ï߳̔µÄÐźÅ(¶ÔÓ¦pthread_kill), ½«Ö»±»¶ÔÓ¦µÄÒ»¸ötask_struct½ÓÊÕ, ²¢ÇÒÓÉËü×Ô¼ºÀ´´¦Àí;
4, µ±”½ø³Ì&r
Ïà¹ØÎĵµ£º
£¨L2CAPÐÒé¼ò½é£¬L2CAPÔÚBlueZÖеÄʵÏÖÒÔ¼°L2CAP±à³Ì½Ó¿Ú£©
Ò»£ºL2CAPÐÒé¼ò½é£º
Logical Link Control and Adaptation Protocol(L2CAP)
Âß¼Á¬½Ó¿ØÖƺÍÊÊÅäÐÒé (L2CAP) ΪÉϲãÐÒéÌá¹©ÃæÏòÁ¬½ÓºÍÎÞÁ¬½ÓµÄÊý¾Ý·þÎñ£¬²¢Ìṩ¶àÐÒ鹦ÄܺͷָîÖØ×é²Ù×÷¡£L2CAP ³äÐíÉϲãÐÒéºÍÓ¦ÓÃÈí¼þ´«ÊäºÍ½ÓÊÕ×î´ó³¤¶ÈΪ 64K µÄ L2CAP Ê ......
·þÎñÆ÷ͻȻ³öÏÖ¹«ÍøÍøÂ粻ͨ¡£»¹ºÃÓÐÅäÁ½¸öIP£¬Ò»¹«Íø£¬Ò»ÄÚÍø£¬ÄÚÍø¿Éͨ£¬Í¨¹ýÄÚÍøÁ¬½Óµ½·þÎñÆ÷ÉÏ ¡£²é¿´ÈÕÖ¾£¬dmesg£¬·¢ÏÖÓÐÕâÑùÒ»Ìõ£º
Sep 9 14:34:36 slave kernel: NETDEV WATCHDOG: eth0: transmit timed out
/etc/init.d/network restart ÍøÂç·þÎñÖØÆôһϣ¬»Ö¸´Õý³£¡£
µ½google²éÕÒ×ÊÁÏ£¬·¢ÏÖÒ²ÓÐÒ»ÑùµÄÎÊ ......
תÌû×Ô£ºhttp://bbs.61job.cn/space/viewspacepost.aspx?postid=4489
ÔÚLinuxÖв»¹ÜÄãÊÇ×ö·þÎñÆ÷»¹ÊÇÖ»ÊÇÆ½³£Ê¹Óã¬ÉÏÍø¿Ï¶¨¶¼ÊÇ×îÖØÒªºÍ²»¿ÉȱÉÙµÄÒ»¸öÒòËØÖ®Ò»£¬
ËùÒÔ¾ÍÉæ¼°µ½ËüµÄip gateway dnsµÈnetworkÅäÖúÍʹÓᣵ«ÊÇÉèÖÃlinuxÍøÂçµÄ·½·¨ÓÐÁ½ÖÖ£º
µÚÒ»ÖÖ£ºÊ¹ÓÃÃüÁîÐ޸ģ¨Ö±½Ó¼´Ê±ÉúЧ,ÖØÆôʧЧ£©
&n ......
1.ϵͳÐÅÏ¢ÏÔʾÃüÁî # uname -a # ²é¿´ÄÚºË/²Ù×÷ϵͳ/CPUÐÅÏ¢
# head -n 1 /etc/issue # ²é¿´²Ù×÷ϵͳ°æ±¾
# cat /proc/cpuinfo # ²é¿´CPUÐÅÏ¢
# hostname ......