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() ¿ÉÒÔ½«È¡ÏûÀàÐÍÉèÖÃΪÑÓ³Ù»òÒ첽ģʽ¡£´´½¨Ïß³Ìʱ£¬È±Ê¡Çé¿öÏ»ὫȡÏûÀàÐÍÉèÖÃΪÑÓ³Ùģʽ¡£ÔÚÑÓ³ÙģʽÏ£¬Ö»ÄÜÔÚÈ¡ÏûµãÈ¡ÏûÏ̡߳£ÔÚÒì
Ïà¹ØÎĵµ£º
ÔÚlinux ÖУ¬ÊäÈëviʱºò£¬Æäʵ¾ÍÊÇÔÚµ÷ÓÃvimÁË;
ubuntuÖУ¬vi´ò¿ªÒ»¸öº¬ÖÐÎĵÄÎļþ£¬Èç.fcitx/configÎļþ£¬Ä¬ÈÏÏÔʾÂÒÂ룬½â¾ö·½·¨£º
1)¶ÔËùÓÐÓû§¶¼ÓÐЧ,½â¾öϵͳÖÐËùÓÃÓû§µÄviÖÐÎÄÂÒÂëÎÊÌâ
sudo /etc/vim/vimrc.tiny »ò/etc/vimrc
¼ÓÈëÈçÏÂÄÚÈÝ£º
#Ìṩһ¸öʵ¼ùÖо ......
ÆäʵÕâ¸öÒ²¿ÉÒÔÊÓΪÏÂÔØÐèÒªvodplayer»òÕß½Ð×ö±¦Àûͨ²¥·ÅÆ÷²ÅÄܹۿ´µÄÔÚÏßµçÓ°µÄÒ»¸ö½â¾ö·½°¸¡£
±¦ÀöͨÊÓÆµµã²¥·þÎñÓÃÔÚÐí¶à¿í´ø·þÎñÉÏ¡£ËٶȽϿ죬µ«ÊDZØÐëʹÓÃÆäÌØ¶¨µÄ²¥·ÅÆ÷vodplayer²ÅÄܲ¥·Å¡£¶øÕâ¸öÈí¼þÖ»ÓÐwindowsƽ̨Éϵİ汾¡£ÔÚlinux»òÕßmacÎÞ·¨Ê¹Óᣳý·Ç×°ÐéÄâ»ú¡£ÄÇÌ«Âé·³¡£
ÏÖÔÚÌṩһ¸ö½â¾ö·½°¸£¬ÆäÔÀíÈçÏ ......
µÚÒ»ÕÂ
1.
½âÊÍÐÔÓïÑÔ£ºshell javascript python ±à³ÌÈËÔ±²»ÐèÒª¾¹ý±àÒë Á¬½ÓµÄ¹ý³Ì£¬¿ÉÒÔÔÚÌØ¶¨»·¾³ÏÂÖ±½ÓÖ´ÐеÄÓïÑÔ ×Ô¶¯±àÒëÁ¬½Ó¡£¿ª·¢Ð§Âʸߣ¬µ«ÔËÐÐЧÂʵ͡£
±àÒëÐÍÓïÑÔ£ºjava c c++£¬ÐèÒª¾¹ý±à³ÌÈËÔ±¾¹ý±àÒëºÍÁ¬½Ó²úÉú¿ÉÖ´ÐгÌÐòµÄÓïÑÔ¡£ÔËÐÐЧÂʸߡ£
2.
Êý¾Ý
Êý¾Ý½á¹¹£ºÊý¾ÝÖ®¼äµÄ ......
ÔÚÅäÖÃApache James Mail Server µÄʱºò£¬Linux ĬÈÏÕ¼ÓÃÁË25ºÅ¶Ë¿Ú£¬ÐèÒª°ÑËü¹Øµô²ÅÄÜÔËÐÐJames Mail Server¡£
nmap localhost : ²é¿´Õ¼ÓõĶ˿ڡ£
ÓÉÓÚ·þÎñÊÇÓÉÊØ»¤½ø³Ìά»¤£¬ËùÒÔ ÕÒµ½¸Ã·þÎñµÄPID£¬È»ºókillµô¾ÍOKÁË¡£
netstat -anep | grep 25
tcp 0 & ......
Ëæ×Å Linux ²Ù×÷ϵͳµÄ¹ã·ºÓ¦Óã¬ÌرðÊÇ Linux ÔÚǶÈëʽÁìÓòµÄ·¢Õ¹£¬Ô½À´Ô½¶àµÄÈË¿ªÊ¼Í¶Éíµ½ Linux Äں˼¶µÄ¿ª·¢ÖС£Ãæ¶ÔÈÕÒæÅÓ´óµÄ Linux ÄÚºËÔ´´úÂ룬¿ª·¢ÕßÔÚÍê³É×Ô¼ºµÄÄں˴úÂëºó£¬¶¼½«ÃæÁÙ×ÅͬÑùµÄÎÊÌ⣬¼´ÈçºÎ½«Ô´´úÂëÈÚÈëµ½ Linux ÄÚºËÖУ¬Ôö¼ÓÏàÓ¦µÄ Linux ÅäÖÃÑ¡Ï²¢×îÖÕ±»±àÒë½ø Linux Äںˡ£Õâ¾ÍÐèÒªÁ˽â Linu ......