linux¶àÏ̺߳ÃÎÄÕÂ
1
¡¢Ï̵߳Ĵ´½¨¡¢ÖÕÖ¹¼°¿ØÖÆ£º
Èκνø³ÌÔÚÆô¶¯Ê±¾ÍÒÑÓÐÁËÒ»¸öÖ÷Ị̈߳¬Èç¹ûÐèÒªÔÙÉú³ÉÏß³ÌÔòʹÓÃ
pthread_create
º¯Êý£¬Ôڸú¯ÊýÖпÉÒÔÖ¸¶¨Ï̵߳ÄÊôÐÔ¡¢Ïß³ÌÀý³Ì¡¢´«¸øÏß³ÌÀý³ÌµÄ²ÎÊý¡£Ïß³ÌÀý³ÌÊÇÒ»¸öÓû§×Ô¶¨ÒåµÄº¯Êý£¬¼°Ïß³ÌÖ´ÐеĴúÂë¡£µ±Ïß³ÌÀý³Ì·µ»ØÊ±£¬Ïß³ÌÔò½áÊøÔËÐУ¬Ò²¿ÉÒÔÏÔʾµ÷ÓÃ
pthread_exit
À´Í˳ö¡£Ïß³ÌÔÚ´´½¨ºó¿ÉÒÔÓÃ
pthread_self
º¯Êý»ñÈ¡Ïß³Ì
ID
¡£º¯Êý
pthread_join
ʹµÃ½ø³ÌµÈ´ýÏ̵߳ÄÖÕÖ¹£¬µ÷ÓÃ
pthread_join
ºó½ø³Ì½«±»¹ÒÆð£¬Ö±µ½Ö¸¶¨µÄij¸öỊ̈߳¨ÔÚ
pthread_join
µÄ²ÎÊý
thread
ÖÐÖ¸¶¨£©ÖÕÖ¹¡£¶ø
pthread_detach
º¯ÊýÕýºÃÏà·´£¬ËüʹµÃ½ø³Ì²»±ØµÈ´ýÏ̵߳ĽáÊø£¬´Ó¶øÔÊÐí½ø³Ì¼ÌÐøÖ´ÐбðµÄ²Ù×÷£¬±»
detach
µÄÏß³ÌÔÚÖ´ÐнáÊøºóÆäÕ¼ÓõÄ×ÊÔ´ÓÉϵͳ×Ô¶¯Êջء£
2
¡¢Ï̼߳äµÄ»¥³â£º
»¥³â²Ù×÷
£¬¾ÍÊǶÔij¶Î´úÂë»òij¸ö±äÁ¿Ð޸ĵÄʱºòÖ»ÄÜÓÐÒ»¸öÏß³ÌÔÚÖ´ÐÐÕâ¶Î´úÂ룬ÆäËûÏ̲߳»ÄÜͬʱ½øÈëÕâ¶Î´úÂë»òͬʱÐ޸ıäÁ¿¡£
pthread
³£ÓÃ
pthread_mutex
»¥³âÌåÀ´ÊµÏÖÏ̻߳¥³â²Ù×÷¡£
pthread_mutex_init
º¯ÊýÓÃÓÚ³õʼ»¯Ò»¸ö»¥³âÌå±äÁ¿¡£
pthread_mutex_lock
º¯ÊýÓÃÓÚ¸ø»¥³âÌå±äÁ¿ÉÏËø£¬Èç¹ûÉÏËøÊ±»¥³âÌåÒѾ±»±»µÄÏß³ÌËø×¡ÁË£¬ÄÇôµ÷Óøú¯ÊýµÄÏ߳̽«±»×èÈûÖ±µ½»¥³âÌå±»½âËøÎªÖ¹¡£¶ø
pthread_mutex_trylock
ÔòÊÇÊÔÍ¼Ëø×¡»¥³âÌ壬µ«ÔÚ»¥³âÌåÒѾ±»¼ÓËøÊ±²»»áÔì³É×èÈû£¬¶øÊÇѸËÙ·µ»Ø¡£
pthread_mutex_unlock
º¯Êý¶Ô»¥³âÌå½âËø¡£
pthread_mutex_destroy
ÔòÓÃÀ´ÊÍ·Å»¥³âÌåËùÕ¼×ÊÔ´¡£
3
¡¢Ï̵߳Äͬ²½£º
ͬ²½¾ÍÊÇÈô¸É¸öÏ̵߳ȴýij¸öʼþµÄ·¢Éú£¬µ±¸Ãʼþ·¢Éúʱ£¬Ò»Æð¿ªÊ¼¼ÌÐøÖ´ÐС£ÔÚ
Linux
Ïß³ÌÖÐÓÃÌõ¼þ±äÁ¿À´ÊµÏÖͬ²½¡£º¯Êý
pthread_cond_init
ÓÃÀ´´´½¨Ò»¸öÌõ¼þ±äÁ¿¡£
pthread_cond_wait
ºÍ
pthread_cond_timewait
ÓÃÀ´µÈ´ýÌõ¼þ±äÁ¿±»ÉèÖã¬ÖµµÃ×¢ÒâµÄÊÇÕâÁ½¸öµÈ´ýµ÷ÓÃÐèÒªÒ»¸öÒѾÉÏËøµÄ»¥³âÌå
mutex
£¬ÕâÊÇΪÁË·ÀÖ¹ÔÚÕæÕý½øÈëµÈ´ý״̬֮ǰ±ðµÄÏß³ÌÓпÉÄÜÉèÖøÃÌõ¼þ±äÁ¿¶ø²úÉú¾ºÕù¡£
pthread_cond_broadcast
ÓÃÓÚÉèÖÃÌõ¼þ±äÁ¿£¬¼´Ê¹Ê¼þ·¢Éú£¬²¢Ê¹µÃËùÓеȴý¸ÃʼþµÄÏ̲߳»ÔÙ×èÈû¡£¶ø
pthread_cond_signal
ÔòÊÇÓýâ³ýijһ¸öµÈ´ýÏ̵߳Ä×èÈû״̬¡£
pthread_cond_destroy
ÓÃÀ´ÊÍ·ÅÒ»¸öÌõ¼þ±äÁ¿µÄ×ÊÔ´¡£
4
¡¢Éú²úÕß——Ïû·ÑÕß¶àÏ̼߳¼ÊõʵÏÖ£º
&nbs
Ïà¹ØÎĵµ£º
1¡¢LinuxϵͳÏÂ.koÎļþÊÇʲôÎļþ£¿.soÎļþÊÇʲôÎļþ£¿
.ko ££ kernel object£¬ÄÚºËÄ£¿é£¬¿ÉÒÔÔÚLinuxÄÚºËÆðÀ´Ö®ºó¶¯Ì¬µÄ¼ÓÔØºÍÐ¶ÔØ¡£
.so ££ shared object£¬Óû§²ãµÄ¶¯Ì¬¿â £¨ÓÚ.a ¶ÔÓ¦£©£¬Ê¹ÓÃͬһ¸ö.soµÄ³ÌÐòÔÚÔËÐÐʱ
Ö»ÐèÒª¸Ã.soµÄͬһ·Ý¿½±´ ......
ǶÈëʽLinux²Ù×÷ϵͳѧϰ¹æ»®
ARM+LINUX·Ïߣ¬Ö÷¹¥Ç¶ÈëʽLinux²Ù×÷ϵͳ¼°ÆäÉÏÓ¦ÓÃÈí¼þ¿ª·¢Ä¿±ê£º
£¨1£© ÕÆÎÕÖ÷Á÷ǶÈëʽ΢´¦ÀíÆ÷µÄ½á¹¹ÓëÔÀí£¨³õ²½¶¨Îªarm9£©
£¨2£© ±ØÐëÕÆÎÕÒ»¸öǶÈëʽ²Ù×÷ϵͳ £¨³õ²½¶¨Îªuclinux»òlinux,°æ±¾´ý¶¨£©
£¨3£© ±ØÐëÊìϤǶÈëʽÈí¼þ¿ª·¢Á÷³Ì²¢ÖÁÉÙ×öÒ ......
vmlinux ±àÒë³öÀ´µÄ×îÔʼµÄÄÚºËÎļþ£¬Î´Ñ¹Ëõ¡£
zImage ÊÇvmlinux¾¹ýgzipѹËõºóµÄÎļþ¡£
bzImage bz±íʾ“big zImage”£¬²»ÊÇÓÃbzip2ѹËõµÄ¡£Á½ÕߵIJ»Í¬Ö®´¦ÔÚÓÚ£¬zImage½âѹËõÄں˵½µÍ¶ËÄÚ´æ(µÚÒ»¸ö640K)£¬bzImage½âѹËõÄں˵½¸ß¶ËÄÚ´æ(1MÒÔÉÏ)¡£Èç¹ûÄں˱ȽÏС£¬ÄÇô²ÉÓÃzImage»òbzI ......
Ò»£®Ç°ÑÔ
¡¡¡¡LinuxÓµÓзḻ¸÷ÖÖÔ´´úÂë×ÊÔ´,µ«ÊǴ󲿷ִúÂëÔÚWindowsƽ̨Çé¿öÊÇÎÞ·¨Õý³£±àÒëµÄ¡£Windowsƽ̨¸ù±¾ÎÞ·¨Ö±½ÓÀûÓÃÕâЩԴ´úÂë×ÊÔ´¡£Èç¹ûÏëҪʹÓÃÍêÕûµÄ´úÂ룬¾ÍÒª×öÒÆÖ²¹¤×÷¡£ÒòΪC/C++ LibraryµÄ²»Í¬ºÍÆäËûµÄһЩÔÒò£¬ÒÆÖ²C/C++´úÂëÊÇÒ»ÏîÀ§ÄѵŤ×÷¡£±¾ÎĽ«ÒÔÒ»¸öʵ¼ÊµÄÀý×Ó£¨Tar£©À´ËµÃ÷ÈçºÎ°ÑLinux´úÂëÒÆÖ² ......