linuxÖÐÏß³ÌÏà¹Øº¯Êý
linuxÖÐÏß³ÌÏà¹Øº¯Êý
2010Äê03ÔÂ09ÈÕ ÐÇÆÚ¶þ 22:18
1. ±È½ÏÁ½¸öÏß³Ì ID ÊÇ·ñÒ»Ö¡£
Ïß³ÌID ʹÓà pthread_t Êý¾ÝÀàÐÍÀ´±íʾ¡£Linux ʹÓà unsigned long int ±íʾpthread_t Êý¾ÝÀàÐÍ¡£Solaris 9 °Ñ pthread_t Êý¾ÝÀàÐͱíʾΪ unsigned int¡£FreeBSD5.2.1 ºÍ MAC OS X 10.3 ÓÃÒ»¸öÖ¸Ïò pthread ½á¹¹µÄÖ¸ÕëÀ´±íʾpthread_t Êý¾ÝÀàÐÍ¡£ Òò´ËÈç¹ûÐèÒª¿¼ÂÇÒÆÖ²ÐÔ£¬±ØÐëʹÓú¯ÊýÀ´¶ÔÁ½¸öÏß³ÌID½øÐбȽϡ£
#include <pthread.h>
int pthread_equal(pthread_t tid1, pthread_t tid2);
·µ»ØÖµ£ºÈç¹ûÏàµÈ·µ»Ø·Ç0£¬·ñÔò·µ»Ø0
2.»ñÈ¡Ïß³Ì×ÔÉíµÄÏß³ÌID¡£
#include <pthread.h>
pthread_t pthread_self(void);
·µ»ØÖµ£ºµ÷ÓÃÏ̵߳ÄÏß³ÌID
3.´´½¨Ị̈߳º
#include <pthread.h>
int pthread_create(pthread_t *restrict tidp, const pthread_attr_t *restrict attr, void *(*start_rtn)(void), void *restrict arg);
·µ»ØÖµ£ºÈô³É¹¦·µ»Ø0£»Èç¹ûʧ°Ü£¬·µ»Ø´íÎó±àºÅ
4.Ïß³ÌÖÕÖ¹
Èç¹û½ø³ÌÖеÄÈÎÒ»Ï̵߳÷ÓÃÁË exit£¬_Exit»òÕß _exit º¯Êý£¬ÄÇôÕû¸ö½ø³Ì¾Í»áÍ˳ö¡£Óë´ËÀàËÆ£¬Èç¹ûÐźŵÄĬÈ϶¯×÷ÊÇÖÕÖ¹½ø³Ì£¬ÄÇô£¬°Ñ¸ÃÐźŷ¢Ë͵½Ï̻߳áÖÕÖ¹Õû¸ö½ø³Ì¡£
ÔÚ²»ÖÕÖ¹Õû¸ö½ø³ÌµÄÇé¿öÏ£¬µ¥¸öÏ߳̿ÉÒÔͨ¹ýÏÂÁÐÈýÖÖ·½Ê½Í˳ö£º
1£©Ïß³ÌÖ»ÊÇ´ÓÆô¶¯Àý³ÌÖзµ»Ø£¬·µ»ØÖµ×÷ΪÏ̵߳ÄÍ˳öÂë¡£
2£©Ï߳̿ÉÒÔ±»Í¬Ò»½ø³ÌÖÐµÄÆäËûÏß³ÌÈ¡Ïû¡£
3£©Ï̵߳÷Óà pthread_exit¡£
#include <pthread.h>
void pthread_exit(void *rval_ptr);
½ø³ÌÖÐµÄÆäËûÏ߳̿ÉÒÔͨ¹ýµ÷Óà pthread_join º¯Êý·ÃÎʵ½Õâ¸öÖ¸Õë¡£
#include <pthread.h>
int pthread_join(pthread_t thread, void **rval_ptr);
·µ»ØÖµ: Èô³É¹¦·µ»Ø0£¬Ê§°Ü·µ»Ø´íÎó±àºÅ
µ÷ÓÃÕâ¸öº¯Êýºó£¬µ÷ÓÃÏ߳̽«Ò»Ö±×èÈû£¬Ö±µ½Ö¸¶¨µÄÏß³ÌÒÔÇ°ÃæÌáµ½µÄ3ÖÖ·½Ê½Í˳ö£¬¼´£º
1£©Ïß³ÌÖ»ÊÇ´ÓÆô¶¯Àý³ÌÖзµ»Ø£¬·µ»ØÖµ×÷ΪÏ̵߳ÄÍ˳öÂë¡£
2£©Ï߳̿ÉÒÔ±»Í¬Ò»½ø³ÌÖÐµÄÆäËûÏß³ÌÈ¡Ïû¡£
3£©Ï̵߳÷Óà pthread_exit¡£
Èç¹ûÏß³ÌÖ»ÊÇ´ÓËüµÄÆô¶¯Àý³ÌÖзµ»Ø£¬ rval_ptr½«°üº¬·µ»ØÂë¡£Èç¹ûÏ̱߳»È¡Ïû£¬ÓÉrval_ptr Ö¸¶¨µÄÄÚ´æµ¥Ôª¾ÍÖÃΪ PTHREAD_CANCELED¡£
Èç¹ûÏß³ÌÒѾ´¦ÓÚ·ÖÀë״̬£¬ pthread_join µ÷Óþͻáʧ°Ü£¬·µ»Ø EINVAL¡£
Èç¹û rval_ptr Ϊ NULL£¬Ôòµ÷ÓÃpthread_join º¯Êý½«µÈ´ýÖ¸¶¨µÄÏß³ÌÖÕÖ¹£¬µ«ÊDz¢²»»ñÈ¡Ï̵߳ÄÖÕֹ״̬¡£
5.
Ïà¹ØÎĵµ£º
Linuxϲ鿴ÎĵµÄÚÈÝÃüÁî×ܽá
Ö÷ÒªÓÐÈçϼ¸¸öÃüÁ
cat ÓɵÚÒ»ÐпªÊ¼ÏÔʾÎĵµÄÚÈÝ
tac ´Ó×îºóÒ»ÐпªÊ¼ÏÔʾ£¬¿ÉÒÔ¿´³ö tac ÊÇ cat µÄµ¹×Åд
nl ÏÔʾµÄʱºò£¬Ë³µÀÊä³öÐкÅ
more Ò»Ò³Ò»Ò³µÄÏÔʾÎĵµÄÚÈÝ
less& ......
LinuxϵĶàÏ̱߳à³Ì
1 ÒýÑÔ
¡¡¡¡Ị̈߳¨thread£©¼¼ÊõÔçÔÚ60Äê´ú¾Í±»Ìá³ö£¬µ«ÕæÕýÓ¦ÓöàÏ̵߳½²Ù×÷ϵͳÖÐÈ¥£¬ÊÇÔÚ80Äê´úÖÐÆÚ£¬solarisÊÇÕâ·½ÃæµÄٮٮÕß¡£´«Í³µÄUnixÒ²Ö§³ÖÏ̵߳ĸÅÄµ«ÊÇÔÚÒ»¸ö½ø³Ì£¨process£©ÖÐÖ»ÔÊÐíÓÐÒ»¸öỊ̈߳¬ÕâÑù¶àÏ߳̾ÍÒâζ×Å¶à½ø³Ì¡£ÏÖÔÚ£¬¶àÏ̼߳¼ÊõÒѾ±»Ðí¶à²Ù×÷ϵͳËùÖ§³Ö£¬°üÀ¨Windows/NT£ ......
°æÈ¨ÉùÃ÷
±¾ÎÄ×÷ÕßÊÇһλ×ÔÓÉÈí¼þ°®ºÃÕߣ¬ËùÒÔ±¾ÎÄËäÈ»²»ÊÇÈí¼þ£¬µ«ÊDZ¾×Å GPL µÄ¾«Éñ·¢²¼¡£ÈκÎÈ˶¼¿ÉÒÔ×ÔÓÉʹÓá¢×ªÔØ¡¢¸´ÖƺÍÔÙ·Ö·¢£¬µ«±ØÐë±£Áô×÷ÕßÊðÃû£¬Ò಻µÃ¶ÔÉùÃ÷ÖеÄÈκÎÌõ¿î×÷ÈκÎÐÎʽµÄÐ޸ģ¬Ò²²»µÃ¸½¼ÓÈÎºÎÆäËüÌõ¼þ¡£Äú¿ÉÒÔ×ÔÓÉÁ´½Ó¡¢ÏÂÔØ¡¢´«²¥´ËÎĵµ£¬µ«Ç°ÌáÊDZØÐ뱣֤ȫÎÄÍêÕû×ªÔØ£¬°üÀ¨ÍêÕûµÄ°æÈ¨ÐÅÏ¢ºÍ× ......
Linux²Ù×÷ϵͳÊÇÒ»ÖÖ¶àÓû§¶àÈÎÎñ¡¢Ö§³Ö¶àÖÖÆ½Ì¨µÄ¿ªÔ´µÄÀàUnix²Ù×÷ϵͳ£¬ÆäÖ§³Ö¶àÖÖÆ½Ì¨£¬ÔÚ·þÎñ¶Ë¿ÉÓëÆäËüÉÌÓÃÀàUnixϵͳæÇÃÀ£¬ÔÚ¿Í»§¶ËÔòÏòWindowsϵÁз¢³öÁËÇ¿ÓÐÁ¦µÄÌôÕ½¡£×ÔLinuxµ®ÉúÒÔÀ´£¬·¢Õ¹Ñ¸ÃÍ£¬ÒѾÊܵ½ÁËÈ«Çò¿ªÔ´ÉçÇøºÍÐí¶àÉÌÒµ¿Æ¼¼¾ÞÍ·µÄ´óÁ¦Ö§³ÖÒÔ¼°Õþ¸®¡¢½ÌÓý»ú¹¹¡¢¿ÆÑе¥Î»µÄÖØÊÓ¡£±¾ÎĽéÉÜÁËLinuxÐéÄâ´æ´¢ ......
Linux·þÎñÆ÷ÐÔÄܼà²âÊǺÜÖØÒªµÄ¹¤×÷£¬·þÎñÆ÷ÔËÐÐÓ¦¸ÃÌṩ×îÓÐЧµÄϵͳÐÔÄÜ¡£µ±·þÎñÆ÷ϵͳÐÔÄÜͻȻµÍÓÚÆ½¾ùÓ¦ÓеÄÇé¿ö£¬ÎÊÌâ¿ÉÄÜÀ´×ÔÔÚÖ´ÐеĽø³Ì¡¢ÄÚ´æµÄʹÓÃÂÊ¡¢´ÅÅ̵ÄÐÔÄÜ¡¢ÍøÂçÁ÷Á¿ºÍCPU µÄѹÁ¦¡£ÔÚÔ¤Ëã¶ÌȱµÄ½ñÌ죬Àí½âÈçºÎÓÅ»¯ÏµÍ³ÐÔÄܱÈÒÔÍùÈκÎʱºò¶¼ÖØÒª¡£ÒªÊµÏÖËüµÄǰÌáÊÇ£¬Äã±ØÐë³ä·ÖÁ˽â×Ô¼ºµÄ¼ÆËã»úºÍÍøÂ磬´Ó¶ ......