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

Ö÷Ì⣺һ¸ö¼òµ¥µÄlinuxÏ̳߳Ø

Ï̳߳Ø
£º¼òµ¥µØËµ£¬Ï̳߳Ø
¾ÍÊÇÔ¤ÏÈ´´½¨ºÃÒ»ÅúỊ̈߳¬·½±ã¡¢¿ìËٵش¦ÀíÊÕµ½µÄÒµÎñ¡£±ÈÆð´«Í³µÄµ½À´Ò»¸öÈÎÎñ£¬¼´Ê±´´½¨Ò»¸öÏß³ÌÀ´´¦Àí£¬½ÚÊ¡ÁËÏ̵߳Ĵ´½¨ºÍ»ØÊյĿªÏú£¬ÏìÓ¦¸ü¿ì£¬Ð§ÂÊ
¸ü¸ß¡£
ÔÚlinuxÖУ¬Ê¹ÓõÄÊÇposixÏ߳̿⣬Ê×ÏȽéÉܼ¸¸ö³£Óõĺ¯Êý£º
1 Ï̵߳Ĵ´½¨ºÍÈ¡Ïûº¯Êý
pthread_create
´´½¨
pthread_join
ºÏ²¢Ïß³Ì
pthread_cancel
È¡ÏûÏß³Ì
2 Ïß³Ìͬ²½º¯Êý
pthread_mutex_lock
pthread_mutex_unlock
pthread_cond_signal
pthread_cond_wait
¹ØÓÚº¯ÊýµÄÏêϸ˵Ã÷£¬²Î¿¼manÊÖ²á
Ï̳߳صÄʵÏÖ£º
Ï̳߳صÄʵÏÖÖ÷Òª·ÖΪÈý²¿·Ö£¬Ï̵߳Ĵ´½¨¡¢Ìí¼ÓÈÎÎñµ½Ï̳߳ØÖС¢¹¤×÷Ï̴߳ÓÈÎÎñ¶ÓÁÐÖÐÈ¡³öÈÎÎñ½øÐд¦Àí¡£
Ö÷ÒªÓÐÁ½¸öÀàÀ´ÊµÏÖ£¬CTask,CThreadPool
/**
Ö´ÐÐÈÎÎñµÄÀ࣬ÉèÖÃÈÎÎñÊý¾Ý²¢Ö´ÐÐ
**/
class CTask
{
protected:
string m_strTaskName; //ÈÎÎñµÄÃû³Æ
void* m_ptrData; //ÒªÖ´ÐеÄÈÎÎñµÄ¾ßÌåÊý¾Ý
public:
CTask(){}
CTask(string taskName)
{
this->m_strTaskName = taskName;
m_ptrData = NULL;
}
virtual int Run()= 0;
void SetData(void* data); //ÉèÖÃÈÎÎñÊý¾Ý
};
ÈÎÎñÀàÊǸöÐéÀ࣬ËùÓеÄÈÎÎñÒª´ÓCTaskÀàÖм̳Ð
£¬ÊµÏÖrun½Ó¿Ú£¬run½Ó¿ÚÖÐÐèҪʵÏֵľÍÊǾßÌå½âÎöÈÎÎñµÄÂß¼­¡£m_ptrDataÊÇÖ¸ÏòÈÎÎñÊý¾ÝµÄÖ¸Õ룬¿ÉÒÔÊǼòµ¥Êý¾ÝÀàÐÍ£¬Ò²¿ÉÒÔÊÇ×Ô¶¨ÒåµÄ¸´ÔÓ
Êý¾ÝÀàÐÍ¡£
Ï̳߳ØÀà
/**
Ï̳߳Ø
**/
class CThreadPool
{
private:
vector<CTask*> m_vecTaskList; //ÈÎÎñÁбí
int m_iThreadNum; //Ï̳߳ØÖÐÆô¶¯µÄÏß³ÌÊý
static vector<pthread_t> m_vecIdleThread; //µ±Ç°¿ÕÏеÄÏ̼߳¯ºÏ
static vector<pthread_t> m_vecBusyThread; //µ±Ç°ÕýÔÚÖ´ÐеÄÏ̼߳¯ºÏ
static pthread_mutex_t m_pthreadMutex; //Ïß³Ìͬ²½Ëø
static pthread_cond_t m_pthreadCond; //Ïß³Ìͬ²½µÄÌõ¼þ±äÁ¿
protected:
static void* ThreadFunc(void * threadData); //ÐÂÏ̵߳ÄÏ̺߳¯Êý
static int MoveToIdle(pthread_t tid); //Ïß³ÌÖ´ÐнáÊøºó£¬°Ñ×Ô¼º·ÅÈëµ½¿ÕÏÐÏß³ÌÖÐ
static int MoveToBusy(pthread_t tid); //ÒÆÈ뵽æµÏß³ÌÖÐÈ¥
int Create(); //´´½¨ËùÓеÄÏß³Ì
public:
CThreadPool(int threadNum);
int AddTask(CTask *task); //°ÑÈÎÎñÌí¼Óµ½Ï̳߳ØÖÐ
int StopAll(


Ïà¹ØÎĵµ£º

Äñî«linuxµÄÎļþ¶Áдȫ¹ý³Ì

http://blog.sina.com.cn/s/blog_61869e800100ek8w.html
¶ÁдÎļþ£¬ÊÇ×÷Ϊһ¸ö²Ù×÷ϵͳËùÌṩµÄ×î»ù±¾½Ó¿ÚÖ®Ò»¡£
ÎÒÃǾʹÓдÎļþ¹ý³Ì£ºopen£¬write£¬closeÕ⼸¸ö½Ó¿ÚÀ´ËµÆð£¬ÃèÊöдÎļþµÄÄÇЩʶù¡£
ƽʱ£¬ÎÒÃÇ×öÓ¦ÓóÌÐòµÄʱºò£¬³£³£Óõ½¶ÁдÎļþµÄº¯Êý½Ó¿Ú£¬¾ÍÄÃдÎļþÀ´Ëµ£¬ÎÒÃÇÓÃC/C++±àдʱ£¬Óõ½ÁËÒÔϵĺ¯Êý½Ó¿Ú£ ......

´ÓUÅ̰²×°Linux Fedoraƪ

1.ÏÂÔØFedora-9-i386-DVD£¬·ÅÔÚUÅÌÖУ¨FAT32·ÖÇø£¬Òª×ã¹»´ó²ÅÐÐ 4G¹»ÁË£© URL£ºhttp://fedoraproject.org/zh_CN/get-fedora
2.ÌáÈ¡³öisolinuxÎļþ¼ÐÏÂÃæµÄÁ½¸öÎļþ initrd.img ºÍ vmlinuz ·ÅÔÚCÅ̸ùĿ¼Ï¡£
3.ÏÂÔØgrub4dos£¬½âѹÌáÈ¡³ö¸öÈý¸öÎļþ grldr grub.exe ºÍ menu.lst(ÈôÎÞ´ËÎļþ£¬Ôò¿É×Ô¼ºÔÚCÅÌϽ¨Ò»¸ötxtÎļþ£ ......

UbuntuÏÂÅäÖÃLAMP£¨Linux+Apache+Mysql+PHP)»·¾³

ÖÕÓڷżÙÁË£¬ÕýÏëÔÚÕâ¸ö¼ÙÆÚÀïѧѧPHP£¬ÓÉÓÚ×Ô¼ºÓõÄÊÇ×ÀÃæ°æµÄUbuntu8.04,ÓÚÊǾÍÏë¼ÜÉèÒ»¸öLAMP»·¾³À´Ñ§PHP£¬Ò²³Ã´Ë»ú»áѧһÏÂPHP·þÎñÆ÷µÄ¼ÜÉè¡£
Ò»¡¢°²×°Ubuntu8.04
ËäȻ˵ÊÇÅäÖÃLAMP»·¾³£¬µ«ÔÚÎÄÕÂÀï²¢²»»á½²ÊöÈçºÎ°²×°Ubuntu8.04,ÒòΪ¹ØÓÚÈçºÎUbuntu8.04ÔÚÍøÉÏÒѾ­ÓкܶàµÄ½Ì³ÌÁË£¬¾ÍËãÊÇÓ²Å̰²×°Ò²ÊÇÒ»¼þºÜ¼òµ¥µÄÊÂÁ ......

Linux C MySQLÊý¾Ý¿âº¯Êý

1. ³õʼ»¯Ò»¸öÁ¬½Ó¾ä±ú
    MYSQL *mysql_init(MYSQL *);
    ÕýÈ·£º·µ»ØÒ»¸öÖ¸ÏòзÖÅäµÄÁ´½Ó¾ä±ú½á¹¹µÄÖ¸Õë
    ´íÎó£ºNULL
    ×¢£º¸Ãº¯ÊýµÄ´«Èë²ÎÊýͨ³£ÎªNULL¼´¿É¡£
2. ½¨Á¢ÎïÀíÁ¬½Ó
    MYSQL *mysql_real_connect(MYSQL *connect ......

ºìÆìLinux 6.0SP3Õýʽ·¢²¼£¡

ÂÜÀòÊÀ½ç ¸úÄúÒ»Æð¿´ÊÀ½ç http://lolier.info/ ¹Ø¼ü×Ö ºìÆì,linux,ÏÂÔØ ºìÆìLinux×ÀÃæ°æ 6.0 SP3 µÄÓ¢ÎÄÃû³ÆÎªRed Flag Linux Desktop 6.0 SP3,²úÆ·´úºÅ(Code Name)ÊÇSuetJade¡£»ù±¾ÏµÍ³»ùÓÚºìÆì×ÀÃæ°æ 6.0 SP2¡£SuetJadeÊǺìÆìÈí¼þ¹«Ë¾Õë¶ÔÔ­ºìÆìLinux×ÀÃæ°æ 6.0 SP2 ²úÆ·´æÔÚµÄÎÊÌâ,ÒÔ¼°µç×ÓÕþÎñ¡¢½ÌÓý¡¢SMBÓÈÆäÊÇOEMµÈÁì ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ