Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö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
2. #include
3. #include
4. #include
5. #include
6. #include
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.
22. /*Ï̳߳ؽṹ*/
23. typedef struct
24. {
25. pthread_mutex_t queue_lock;
26. pthread_cond_t queue_ready;
27.
28. /*Á´±í½á¹¹£¬Ï̳߳ØÖÐËùÓеȴýÈÎÎñ*/
29. CThread_worker *queue_head;
30.
31. /*ÊÇ·ñÏú»ÙÏ̳߳Ø*/
32. int shutdown;
33. pthread_t *threadid;
34. /*Ï̳߳ØÖÐÔÊÐíµÄ»î¶¯Ïß³ÌÊýÄ¿*/
35. int max_thread_num;
36. /*µ±Ç°µÈ´ý¶ÓÁеÄÈÎÎñÊýÄ¿*/
37. int cur_queue_size;
38.
39. } CThread_pool;
40.
41.
42. int pool_add_worker (void *(*process) (void *arg), void *arg);
43. void *thread_routine (void *arg);
44.
45.
46. static CT


Ïà¹ØÎĵµ£º

linux´ÅÅ̿ռ䲻¹»ÓÃ,Ìí¼ÓÓ²ÅÌ

Ìí¼ÓÓ²Å̺óÆô¶¯ÐéÄâ»ú£¬ Èç¹ûÌí¼ÓµÄSCSIÓ²ÅÌÕâʱӦ¸Ã¶à³öÒ»¸ösdb/sdc/..µÄÅÌ£¬¿ÉÒÔÓà fdisk -l ²é¿´µ½
·ÖÇøfdisk /dev/sdb   ---> n p 1 »Ø³µ »Ø³µ w
¸ñʽ»¯mkfs -t ext3 -c /dev/sdb1
¹ÒÔØµ½Ä³¸öĿ¼ mount /dev/sdb1 /home
vi /etc/fstab Ìí¼ÓÒ»ÐР /dev/sdb1   /home  ext3 defau ......

֪ʶС¼Ç(linux)

1)webmin
    WebminÊÇĿǰ¹¦ÄÜ×îÇ¿´óµÄ»ùÓÚWebµÄUnixϵͳ¹ÜÀí¹¤¾ß¡£¹ÜÀíԱͨ¹ýä¯ÀÀÆ÷·ÃÎÊWebminµÄ¸÷ÖÖ¹ÜÀí¹¦Äܲ¢Íê³ÉÏàÓ¦µÄ¹ÜÀí¶¯×÷¡£Ä¿Ç°
WebminÖ§³Ö¾ø´ó¶àÊýµÄUnixϵͳ£¬ÕâЩϵͳ³ýÁ˸÷ÖÖ°æ±¾µÄlinuxÒÔÍ⻹°üÀ¨£ºAIX¡¢HPUX¡¢Solaris¡¢Unixware¡¢Irix
ºÍFreeBSDµÈ¡£
    Webmin ÈÃÄúÄÜ ......

Linux ̽Ë÷

ת£ºhttp://www.nounix.com/linux-explore-the-legend-of-the-beginning-of-the-first-act-14577/
<Linux ̽Ë÷>
µÄÄ¿µÄÊǰïÖúÄúÈÏʶLinux Õâ¸ö²©´ó¾«ÉîµÄ²Ù×÷ϵͳ²úÆ·£¬Èç¹ûÄú´ø×ÅÏë³ÉΪר¼Ò»òÕß¶¥¼âLinux ÈËÎïÀ´¿´±¾Îĵϰ£¬Äú¿Ï¶¨ÒªÊ§ÍûÁË¡£ÒòΪÎÒ×Ô¼ºÒ²»¹ÊÇLinux µÄ³õѧÕߣ¬ÔõôÄܹ»Ð´³öÈÃÄú³ÉΪ¸ßÊÖµÄÎÄÕ£¿£¨Ð ......

C/C++: Ê®Áù½øÖÆ×ª10½øÖÆÔ´Âë ÊÕ²Ø

C/C++: Ê®Áù½øÖÆ×ª10½øÖÆÔ´Âë
ÊÕ²Ø



view plain
copy to clipboard
print
?
int
 hex_char_value(
char
 c)  
{  
    if
(c >= 
'0'
 && ......

(windowsÏÂ)ÓÃEclipse´î½¨C/C++¿ª·¢»·¾³

--------Èç¹ûÄãÓõÄÊÇ»ò´òËãÓÃEclipse For C++£¬ÄÇô´ÓÕâÀï¿´,
1. Ê×ÏÈÏÂÔØEclipse for C++, ×îаæÊÇ»ùÓÚEclipse 3.5.2µÄ,eclipse-cpp-galileo-SR2-win32.zip
2. ½âѹ£¬Ö±½ÓÔËÐС£×¢Ò⣬ÖÁÉÙJDKÄãÒѾ­°²×°ÁË£¨ÎÒÓõÄÊÇJDK1.6£©¡£ÔËÐкówelcomeÒ³Ãæ³öÏÖ£¬½øÈëTutorials¡£ÏȶÁTutorialÊǸöºÃϰ¹ß¡£
3. Ê×ÏÈ Ê²Ã´ÊÇCDT... ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ