Linux Ïß³ÌDetach&Join
1£®µÈ´ýÏß³Ì
pthread_join º¯ÊýÓÃÀ´µÈ´ýÒ»¸öÏ̵߳ĽáÊø£¬ÀàËÆÓÚ½ø³ÌµÄ wait º¯Êý¡£
´Ëº¯Êý½«×èÈûµ÷Óõ±Ç°Ï̵߳Ľø³Ì£¬Ö±µ½´ËÏß³ÌÍ˳ö¡£¼´Õâ¸öº¯ÊýÊÇÒ»¸öÏß³Ì×èÈûµÄº¯Êý£¬µ÷ÓÃËüµÄ½ø³Ì½«Ò»Ö±µÈ´ýµ½±»µÈ´ýµÄÏ߳̽áÊøÎª£¬µ±º¯Êý·µ»ØÊ±£¬´¦ÓÚ±»µÈ´ý״̬µÄÏß³Ì×ÊÔ´±»Êջء£Èç¹ûÖ´Ðгɹ¦£¬½«·µ»Ø 0£¬Èç¹ûʧ°ÜÔò·µ»ØÒ»¸ö·Ç 0¡£´Ëº¯ÊýµÄµÚÒ»¸ö²ÎÊýΪ±»µÈ´ýµÄÏ̱߳êʶ·û£¬´ËֵΪ´´½¨Ïß³Ìʱ·µ»ØµÄÏß³Ì ID£¬´ËÏ̱߳ØÐëͬµ÷ÓÃËüµÄ½ø³ÌÏàÁªÏµ£¬¼´´´½¨¸ÃÏß³Ìʱ²»ÄÜÖ¸Ã÷´ËÏß³ÌΪ¶ÀÁ¢µÄÏ̡߳£µÚ¶þ¸ö²ÎÊýΪһ¸öÓû§¶¨ÒåµÄÖ¸Õ룬ָÏòÒ»¸ö±£´æµÈ´ýÏ̵߳ÄÍêÕûÍ˳ö״̬µÄ¾²Ì¬ÇøÓò£¬Ëü¿ÉÒÔÓÃÀ´´æ´¢±»µÈ´ýÏ̵߳ķµ»ØÖµ£¬Èç¹ûÔÚ´´½¨Ïß³Ìʱ pthread_create º¯ÊýµÄµÚ¶þ¸ö²ÎÊý__attr ÉèÖÃΪ NULL£¬Ôò´ËÍ˳öµÄ״̬ÐÅÏ¢»á¶ªÊ§¡£¹ØÓڵȴýÖ¸¶¨Ï߳̽áÊø£¬ÐèҪעÒâÒÔϼ¸µã£º
£¨1£©Ò»¸öÏß³ÌÖ»ÄܵȴýÁ¬½ÓÒ»¸öÆäËûÏ̡߳£
£¨2£©·¢²¼Á¬½Ó²Ù×÷µÄÏ̲߳»Ò»¶¨ÊdzõʼÏ̡߳£
£¨3£©Èç¹ûÓжà¸öÏ̵߳ȴýͬһÏß³ÌÖ´ÐУ¬Ö»ÓÐÒ»¸öÏß³ÌÄܹ»µÃµ½ÕýÈ·µÄ״̬ÐÅÏ¢¡£
£¨4£©ÓоºÕù¹ØÏµµÄÏ̼߳äµÄÁ¬½Ó²Ù×÷½«·µ»ØÒ»¸ö´íÎó¡£
£¨5£©Èç¹ûÆô¶¯Á¬½ÓµÄÏ̱߳»È¡Ïû£¬Ôò´¦Óڵȴý״̬µÄÏ߳̿ÉÒÔ±»ÆäËûÏ̵߳ȴý¡£
£¨6£©Èç¹ûÄ¿±êÏß³ÌÔÚÖ´ÐÐ pthread_join ǰ½áÊø£¬Ôò¸Ãµ÷Óý«²»»áÒýÆðÈκÎ×èÈû²¢Á¢¼´·µ»Ø¡£
£¨7£©Ò»¸öδ±»Á¬½ÓµÄ·Ç¶ÀÁ¢Ïß³ÌÔÚÏ߳̽áÊøÇ°Ò»Ö±Õ¼ÓÃ×ÊÔ´£¬Ö±µ½´´½¨ËüµÄ½ø³Ì½áÊø¡£
pthread_joinº¯ÊýÉùÃ÷ÈçÏ£º
extern int pthread_join (pthread_t __th, void **__thread_return);
2£®·ÖÀëÏß³Ì
·ÖÀëÏß³ÌÊǵȴýµÄÄæ²Ù×÷¡£pthread_detach ¿âº¯ÊýÒÔÓû²Ù×÷µÄÏß³Ì ID ΪÆäΨһµÄ²ÎÊý¡£Èç¹ûÖ´Ðгɹ¦£¬½«Ê¹¸ÃÏß³ÌÓ뵱ǰ½ø³Ì·ÖÀ룬ʹÆä³ÉΪһ¸ö¶ÀÁ¢µÄỊ̈߳¬²¢·µ»Ø 0£¬µ± threadÖÕֹʱ£¬ÏµÍ³½«×Ô¶¯»ØÊÕËüµÄ×ÊÔ´£»Èç¹ûÖ´ÐÐʧ°Ü£¬½«²»·ÖÀëÖ¸¶¨µÄÏ̲߳¢·µ»Ø·ÇÁãÖµ¡£
pthread_detach º¯ÊýÉùÃ÷ÈçÏ£º
/* Indicate that the thread TH is never to be joined with PTHREAD_JOIN.
The resources of TH will therefore be freed immediately when it terminates, instead
of waiting for another thread to perform PTHREAD_JOIN on it. */
extern int pthread_detach (pthread_t __th) __THROW;
***********************************************
[Ô]ÔÚlinuxÖв鿴Á½¸öº¯Êý£º
find / -name pthread.h -print
cd /usr/include
grep -n 'pthread_join' ./pthread.h
grep -n 'pthread
Ïà¹ØÎĵµ£º
ËäȻĿǰLinuxµÄÓÅÊÆÖ÷ÒªÌåÏÖÔÚÍøÂç·þÎñ·½Ã棬µ«ÊÂʵÉÏͬÑùÒ²ÓÐ×ŷdz£·á¸»µÄýÌ幦ÄÜ£¬±¾ÎľÍÊÇÒÔ¶àýÌåÓ¦ÓÃÖÐ×î»ù±¾µÄÉùÒôΪ¶ÔÏ󣬽éÉÜÈçºÎÔÚLinuxƽ̨Ï¿ª·¢Êµ¼ÊµÄÒôƵӦÓóÌÐò£¬Í¬Ê±»¹¸ø³öÁËһЩ³£ÓõÄÒôƵ±à³Ì¿ò¼Ü¡£
Ò»¡¢Êý×ÖÒôƵ
ÒôƵÐźÅÊÇÒ»ÖÖÁ¬Ðø±ä»¯µÄÄ£ÄâÐźţ¬µ«¼ÆËã»úÖ»ÄÜ´¦ÀíºÍ¼Ç¼¶þ½øÖƵÄÊý×ÖÐźţ¬ÓÉ×ÔÈ» ......
ת×Ô£ºhttp://www.oracle.com/technology/global/cn/pub/articles/advanced-linux-commands/part3.html
×÷ÕߣºArup Nanda
2009 Äê 1 Ô·¢±í
Ôڴ˲¿·ÖÖУ¬Á˽âÓÃÓÚ¼àÊÓÎïÀí×é¼þµÄ¸ß¼¶ Linux ÃüÁî
Linux ϵͳÓÉÈô¸ÉÖ÷ÒªÎïÀí×é¼þ×é³É£¬Èç CPU¡¢ÄÚ´æ¡¢Íø¿¨ºÍ´æ´¢É豸¡£ÒªÓÐЧµØ¹ÜÀí Linux »·¾³£¬ÄúÓ¦¸ÃÄܹ»ÒÔºÏÀíµÄ¾ ......
Õâ¸öÊÇÎÒÔÚÒ»±¾ÊéÉÏ¿´µ½µÄ£¬ÆäÖеÄһЩ´úÂëÎÒÓÐËù¸Ä±ä£¬Ð´¸ø¸÷λºÃÓѹ²Ïíһϣ¡
#include <sys/types.h>
#include <sys/socket.h>
#include <unistd.h>
#include <stdio.h>
#include <string.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <errno.h&g ......
ÍêÉÆLinuxϵͳ
1.¿ª»ú×Ô¶¯¹ÒÔØwindow·ÖÇø
fedora10ËäÈ»ÄÜ×Ô¶¯¹ÒÔØ,µ«ÊǹÒÔØµÄ·ÖÇøÓÐʱ»á²»ÈϺº×ÖÎļþ¼Ð
´ÓÖÕ¶ËÓÃvi»ògedit´ò¿ª/etc/fstab£¬ÔÚÆäÖÐÌí¼Ó£º
/dev/sda1 /mnt/1 ntfs default 0 0
×¢£ºµÚÒ»ÏîÊÇ·ÖÇøÇý¶¯µØÖ·
......