£È»ºó½«¸ÃJob½»ÓÉCThreadManageÈ¥Ö´ÐС£ÏÂÃæÎÒÃǸø³öÒ»¸ö¼òµ¥µÄʾÀý³ÌÐò
class CXJob:public CJob
{
public:
CXJob(){i=0;}
~CXJob(){}
void Run(void* jobdata) {
printf("The Job comes from CXJOBn");
sleep(2);
}
};
class CYJob:public CJob
{
public:
CYJob(){i=0;}
~CYJob(){}
void Run(void* jobdata) {
printf("The Job comes from CYJobn");
}
};
main()
{
CThreadManage* manage = new CThreadManage(10);
for(int i=0;i<40;i++)
{
CXJob* job = new CXJob();
manage->Run(job,NULL);
}
sleep(2);
CYJob* job = new CYJob();
manage->Run(job,NULL);
manage->TerminateAll();
}
CXJobºÍCYJob¶¼ÊÇ´ÓJobÀà¼Ì³Ð¶øÀ´£¬Æä¶¼ÊµÏÖÁËRun½Ó¿Ú¡£CXJobÖ»ÊǼòµ¥µÄ´òÓ¡Ò»¾ä¡±The Job comes from CXJob¡±£¬CYJobÒ²Ö»´òÓ¡¡±The Job comes from CYJob¡±£¬È»ºó¾ùÐÝÃß2ÃëÖÓ¡£ÔÚÖ÷³ÌÐòÖÐÎÒÃdzõʼ´´½¨10¸ö¹¤×÷Ï̡߳£È»ºó·Ö±ðÖ´ÐÐ40´ÎCXJobºÍÒ»´ÎCYJob¡£
Ï̳߳ØÊ¹Óúó¼Ç
Ï̳߳ØÊʺϳ¡ºÏ
ÊÂʵÉÏ£¬Ï̳߳ز¢²»ÊÇÍòÄܵġ£ËüÓÐÆäÌØ¶¨µÄʹÓó¡ºÏ¡£Ï̳߳ØÖÂÁ¦ÓÚ¼õÉÙÏ̱߳¾ÉíµÄ¿ªÏú¶ÔÓ¦ÓÃËù²úÉúµÄÓ°Ï죬ÕâÊÇÓÐǰÌáµÄ£¬Ç°Ìá¾ÍÊÇÏ̱߳¾Éí¿ªÏúÓëÏß³ÌÖ´ÐÐÈÎÎñÏà±È²»¿ÉºöÂÔ¡£Èç¹ûÏ̱߳¾ÉíµÄ¿ªÏúÏà¶ÔÓÚÏß³ÌÈÎÎñÖ´ÐпªÏú¶øÑÔÊÇ¿ÉÒÔºöÂÔ²»¼ÆµÄ£¬ÄÇô´ËʱÏ̳߳ØËù´øÀ´µÄºÃ´¦ÊDz»Ã÷ÏԵ쬱ÈÈç¶ÔÓÚFTP·þÎñÆ÷ÒÔ¼°Telnet·þÎñÆ÷£¬Í¨³£´«ËÍÎļþµÄʱ¼ä½Ï³¤£¬¿ªÏú½Ï´ó£¬ÄÇô´Ëʱ£¬ÎÒÃDzÉÓÃÏ̳߳ØÎ´±ØÊÇÀíÏëµÄ·½·¨£¬ÎÒÃÇ¿ÉÒÔÑ¡Ôñ¡°¼´Ê±´´½¨£¬¼´Ê±Ïú»Ù¡±µÄ²ßÂÔ¡£
×ÜÖ®Ï̳߳ØÍ¨³£ÊʺÏÏÂÃæµÄ¼¸¸ö³¡ºÏ£º
(1) µ¥Î»Ê±¼äÄÚ´¦ÀíÈÎÎñƵ·±¶øÇÒÈÎÎñ´¦Àíʱ¼ä¶Ì
(2) ¶ÔʵʱÐÔÒªÇó½Ï¸ß¡£Èç¹û½ÓÊܵ½ÈÎÎñºóÔÚ´´½¨Ị̈߳¬¿ÉÄÜÂú×ã²»ÁËʵʱҪÇó£¬Òò´Ë±ØÐë²ÉÓÃÏ̳߳ؽøÐÐÔ¤´´½¨¡£
(3) ±ØÐë¾³£Ãæ¶Ô¸ßÍ»·¢ÐÔʼþ£¬±ÈÈçWeb·þÎñÆ÷£¬Èç¹ûÓÐ×ãÇòת²¥£¬Ôò·þÎñÆ÷½«²úÉú¾Þ´óµÄ³å»÷¡£´ËʱÈç¹û²ÉÈ¡´«Í³·½·¨£¬Ôò±ØÐ벻ͣµÄ´óÁ¿²úÉúỊ̈߳¬Ïú»ÙÏ̡߳£´Ëʱ²ÉÓö¯Ì¬Ï̳߳ؿÉÒÔ±ÜÃâÕâÖÖÇé¿öµÄ·¢Éú¡£
½áÊøÓï
±¾Îĸø³öÁËÒ»¸ö¼òµ¥µÄͨÓõÄÓëÈÎÎñÎ޹صÄÏ̳߳صÄʵÏÖ£¬Í¨¹ý¸ÃÏ̳߳ØÄܹ»¼«´óµÄ¼ò»¯Linux϶àÏ̵߳Ŀª·¢¹¤×÷¡£¸ÃÏ̳߳صĽøÒ»²½ÍêÉÆ¿ª·¢¹¤×÷»¹ÔÚ½øÐÐÖУ¬Ï£ÍûÄܹ»µÃµ½ÄãµÄ½¨ÒéºÍÖ§³Ö¡£
LinuxÁªÃËÊÕ¼¯ÕûÀí ,תÌùÇë±êÃ÷ÔʼÁ´½Ó,ÈçÓÐÈκÎÒÉÎÊ»¶ÓÀ´±¾Õ¾LinuxÂÛ̳ÌÖÂÛ