Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

Ò»¸öLinuxÏÂCÏ̳߳صÄʵÏÖ

      ʲôʱºòÐèÒª´´½¨Ï̳߳ØÄØ£¿¼òµ¥µÄ˵£¬Èç¹ûÒ»¸öÓ¦ÓÃÐèҪƵ·±µÄ´´½¨ºÍÏú»ÙỊ̈߳¬¶øÈÎÎñÖ´ÐеÄʱ¼äÓַdz£¶Ì£¬ÕâÑùÏ̴߳´½¨ºÍÏú»ÙµÄ´øÀ´µÄ¿ªÏú¾Í²»ÈݺöÊÓ£¬ÕâʱҲÊÇÏ̳߳ظóö³¡µÄ»ú»áÁË¡£Èç¹ûÏ̴߳´½¨ºÍÏú»Ùʱ¼äÏà±ÈÈÎÎñÖ´ÐÐʱ¼ä¿ÉÒÔºöÂÔ²»¼Æ£¬ÔòûÓбØÒªÊ¹ÓÃÏ̳߳ØÁË¡£
   ÏÂÃæÊÇLinuxϵͳÏÂÓÃCÓïÑÔ´´½¨µÄÒ»¸öÏ̳߳ء£Ï̳߳ػáά»¤Ò»¸öÈÎÎñÁ´±í(ÿ¸öCThread_worker½á¹¹¾ÍÊÇÒ»¸öÈÎÎñ)¡£
   pool_init()º¯ÊýÔ¤ÏÈ´´½¨ºÃmax_thread_num¸öỊ̈߳¬Ã¿¸öÏß³ÌÖ´thread_routine ()º¯Êý¡£¸Ãº¯ÊýÖÐ
   1. while (pool->cur_queue_size == 0)
   2. {
   3.        pthread_cond_wait (&(pool->queue_ready),&(pool->queue_lock));
   4. }
±íʾÈç¹ûÈÎÎñÁ´±íÖÐûÓÐÈÎÎñ£¬Ôò¸ÃÏ̳߳öÓÚ×èÈûµÈ´ý״̬¡£·ñÔò´Ó¶ÓÁÐÖÐÈ¡³öÈÎÎñ²¢Ö´ÐС£
 
   pool_add_worker()º¯ÊýÏòÏ̳߳صÄÈÎÎñÁ´±íÖмÓÈëÒ»¸öÈÎÎñ£¬¼ÓÈëºóͨ¹ýµ÷ÓÃpthread_cond_signal (&(pool->queue_ready))»½ÐÑÒ»¸ö³öÓÚ×èÈû״̬µÄÏß³Ì(Èç¹ûÓеϰ)¡£
 
   pool_destroy ()º¯ÊýÓÃÓÚÏú»ÙÏ̳߳أ¬Ï̳߳ØÈÎÎñÁ´±íÖеÄÈÎÎñ²»»áÔÙ±»Ö´ÐУ¬µ«ÊÇÕýÔÚÔËÐеÄÏ̻߳áÒ»Ö±°ÑÈÎÎñÔËÐÐÍêºóÔÙÍ˳ö¡£
ÏÂÃæÌù³öÍêÕû´úÂë
   1. #include <stdio.h>
   2. #include <stdlib.h>
   3. #include <unistd.h>
   4. #include <sys/types.h>
   5. #include <pthread.h>
   6. #include <assert.h>
   7.
   8. /*
   9. *Ï̳߳ØÀïËùÓÐÔËÐк͵ȴýµÄÈÎÎñ¶¼ÊÇÒ»¸ö CThread_worker
  10. *ÓÉÓÚËùÓÐÈÎÎñ¶¼ÔÚÁ´±íÀËùÒÔÊÇÒ»¸öÁ´±í½á¹¹
  11. */
  12. typedef struct worker
  13. {
  14.     /*»Øµ÷º¯Êý£¬ÈÎÎñÔËÐÐʱ»áµ÷Óô˺¯Êý£¬×¢ÒâÒ²¿ÉÉùÃ÷³ÉÆäËüÐÎʽ*/
  15.     void *(*process) (void *arg);
  16.     void *arg;/*»Øµ÷º¯ÊýµÄ²ÎÊý*/
  17.     struct worker *next;
  18.
  19. } CThread_worker;
  20.
  21.
 


Ïà¹ØÎĵµ£º

linux convertͼÏñ´¦ÀíÃüÁî


¡¡¼¸¸ö¼òµ¥µÄÓ¦Óá£
¡¡¡¡1¡¢ÅúÁ¿Í¼Ïñ¸ñʽת»»
¡¡¡¡Èç¹ûÏ뽫ijĿ¼ÏµÄËùÓÐjpgÎļþת»»ÎªpngÎļþ£¬Ö»ÒªÔÚÃüÁîÐÐģʽÏÂÊäÈë:
¡¡¡¡for %f in (*.jpg) do convert “%f” “%~nf.png”
¡¡¡¡2¡¢¶ÔËùÓÐͼÏñ½øÐÐͬһ²Ù×÷
¡¡¡¡Æ©È磬ÅúÁ¿Éú³ÉijĿ¼ÏÂËùÓÐPNGͼÏñÎļþµÄËõÂÔͼ(´óСΪ80×40):
¡¡¡¡ ......

linux ÉèÖû·¾³±äÁ¿

ÏÂÃæÒÔÅäÖÃjava
»·¾³±äÁ¿ÎªÀý½éÉÜÈýÖÖÅäÖû·¾³±äÁ¿µÄ·½·¨¡£
 
1.ÐÞ¸Ä/etc/profileÎļþ
Èç¹ûÄãµÄ¼ÆËã»ú½ö½ö×÷Ϊ¿ª·¢Ê¹ÓÃÊ±ÍÆ¼öʹÓÃÕâÖÖ·½·¨£¬ÒòΪËùÓÐÓû§
µÄshell
¶¼ÓÐȨʹÓÃÕâЩ»·¾³±äÁ¿£¬¿ÉÄÜ
»á¸øÏµÍ³
´øÀ´°²È«ÐÔÎÊÌâ¡£
 
(1)ÓÃÎı¾±à¼­Æ÷´ò¿ª/etc/profile
 
(2)ÔÚprofileÎļþĩβ¼ÓÈ룺
JA ......

¿ìËÙʹÓÃlocateÃüÁî²éÕÒLinuxÖеÄÎļþ

ÔÚºÆå«µÄLinuxÖУ¬²éÕÒij¸öÎļþÊǼþ·Ç³£ÒªÃüµÄʶù¡£ÎÒÊÔ¹ýºÜ¶à·½·¨£¬×î¼òµ¥¡¢×î·½±ãµÄÒ»ÖÖÊÇÀûÓÃlocateÃüÁîºÍupdatedbÃüÁîÅäºÏµÄ·½·¨£º
±ÈÈ磬ÎÒÃÇÒª²éÕÒÒ»¸öÎļþÃûÖдø“chen”×Ö·û´®µÄÎļþ£¬ÕâÑù×ö£º
[root@locahost /]# locate chen
ÕâÑù¾ÍÄܳöÏÖÒ»´ó´®Ô̺¬chen×Ö·û´®ÎļþÃûµÄÎļþ¡£
×¢Ò⣬locateÖ´Ðкóµ ......

linux µ÷ÊÔ¶¯Ì¬¿â

ÎÒ×î½üµÄ¹¤×÷ÊÇÔÚlinux»·¾³Ï²âÊÔÒ»¸ö.soµÄ¶¯Ì¬¿â£¬ÎÒÔÝʱÃüÃûΪlibdawn.so,ÊÇͬÊÂʵÏֵģ¬ÎÒÐèÒªÔÙÎҵIJâÊÔ³ÌÐòÖмÓÔØÕâ¸ö¿â£¬²¢µ÷ÊԸÿ⣬ÎÒÓõıàÒë»·¾³ÊÇEclipse.
1. ÔÚEclipse->Project->Properities->c/c++ Build->setting->gcc c++ Linker(Èç¹ûÊÇÓÃgcc c±àÒëµÄÔòÑ¡gcc c Linker)->Libraries ......

extern¼°extern ¡°C¡±Ó÷¨

externÊÇC/C++ÓïÑÔÖбíÃ÷º¯ÊýºÍÈ«¾Ö±äÁ¿×÷Ó÷¶Î§£¨¿É¼ûÐÔ£©µÄ¹Ø¼ü×ÖËü¸æËß±àÒëÆ÷£¬ÆäÉùÃ÷µÄº¯ÊýºÍ±äÁ¿¿ÉÒÔÔÚ±¾Ä£¿é»òÆäËüÄ£¿éÖÐʹÓá£
1¡£¶ÔÓÚextern±äÁ¿À´Ëµ£¬½ö½öÊÇÒ»¸ö±äÁ¿µÄÉùÃ÷£¬Æä²¢²»ÊÇÔÚ¶¨Òå·ÖÅäÄÚ´æ¿Õ¼ä¡£Èç¹û¸Ã±äÁ¿¶¨Òå¶à´Î£¬»áÓÐÁ¬½Ó´íÎó
2¡£Í¨³££¬ÔÚÄ£¿éµÄÍ·ÎļþÖжԱ¾Ä£¿éÌṩ¸øÆäËüÄ£¿éÒýÓõĺ¯ÊýºÍÈ«¾Ö±äÁ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ