Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö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ÉèÖû·¾³±äÁ¿Ð¡½á

1¡¢×ܽᱳ¾°
ÔÚlinuxϵͳÏ£¬Èç¹ûÄãÏÂÔØ²¢°²×°ÁËÓ¦ÓóÌÐò£¬ºÜÓпÉÄÜÔÚ¼üÈëËüµÄÃû³ÆÊ±³öÏÖ“command not found”µÄÌáʾÄÚÈÝ¡£Èç¹ûÿ´Î¶¼µ½°²×°Ä¿±êÎļþ¼ÐÄÚ£¬ÕÒµ½¿ÉÖ´ÐÐÎļþÀ´½øÐвÙ×÷¾ÍÌ«·±ËöÁË¡£ÕâÉæ¼°µ½»·¾³±äÁ¿PATHµÄÉèÖÃÎÊÌ⣬¶øPATHµÄÉèÖÃÒ²ÊÇÔÚlinux϶¨ÖÆ»·¾³±äÁ¿µÄÒ»¸ö×é³É²¿·Ö¡£±¾°¸Àý»ùÓÚRedHat AS4½² ......

I2C×ÜÏßÔÚLinuxϵͳÖеÄÇý¶¯Éè¼Æ

¡¡1 ÒýÑÔ
¡¡¡¡Linux²Ù×÷ϵͳÒò¾ßÓÐÔ´´úÂ빫¿ª¡¢±ãÓڲüõ¡¢Óй㷺µÄ´¦ÀíÆ÷Ö§³ÖµÈÓŵ㣬³ÉΪµ±Ç°Ç¶ÈëʽϵͳµÄÈÈÃÅÑ¡Ôñ¡£»ùÓÚI2C×ÜÏߵļüÅÌÀ©Õ¹É豸Ö÷ÒªÓÃÓÚÂú×ãǶÈëʽÉ豸ÖжԶఴ¼üµÄÐèÇó£¬Çý¶¯³ÌÐòÔÚϵͳÆô¶¯Ê±¶ÔÓ²¼þ½øÐгõʼ»¯¡£ÔÚϵͳÆô¶¯ºóʵÏÖÓ²¼þºÍÓ¦ÓóÌÐòÖ®¼äµÄÊý¾Ý½»»¥¡£Õë¶ÔS3C2410΢´¦ÀíÆ÷ºÍ¼üÅÌɨÃè¹ÜÀíÆ÷¼þ£¬É ......

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

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

Æß´óʵÓÃÃüÁîÐй¤¾ß Íæ×ªLinuxÍøÂçÅäÖÃ

¡¾51CTO¾«Ñ¡ÒëÎÄ¡¿ËäÈ»ÏÖÔÚ´ó¶àÊýLinux·¢ÐаæÏ¶¼ÓÐGUIµÄÍøÂç¹ÜÀíÅäÖ㬲»¹ýÊìϤÃüÁîÐй¤¾ß»¹ÊÇ´óÓÐÖúÒæµÄ¡£ÏÂÃæÎÒÃÇÀ´¿´¿´ÕâЩÁ÷ÐÐLinux·¢ÐаæÏÂÃæµÄ³£ÓÃÃüÁî¡£¶ÔÁË£¬Èç¹ûÄãÏëÒªÁ˽â¸Ã¹¤¾ßºÍÑ¡ÏîµÄÏêϸÇé¿ö£¬¿ÉÒÔÊäÈëmanÔÙÊäÈëÕâ¸ö¹¤¾ßµÄÃû×Ö·ÃÎÊÆämanÒ³Ãæ¡£
ÏÖÔھʹò¿ªÄãµÄterminal³¢ÊÔһϰɣ¡
ÓÃÓÚ»ù±¾½Ó¿ÚÓëIPÅäÖÃµÄ ......

2440ƽ̨ÏÂlinux´®¿Ú¿ª·¢Ô´ÂëʾÀý(2440Ë«´®¿Ú¼äͨÐÅ)

/***************************************************************************** ³ÌÐò˵Ã÷£ºÊ¾Àý³ÌÐòÑÝʾÁË2440ƽ̨ÏÂlinux´®¿ÚÓ¦Óÿª·¢£¬¿ÉʵÏÖ2440´®¿Ú2Óë´®¿Ú3µÄͨѶ*** Ó²¼þÉèÖ㺽«2440°å×ÓÉϵĴ®¿Ú2¡¢3TXD¡¢RXD½»²æ¶Ì½Ó*** ±àÒëÔËÐУºÔÚËÞÖ÷»úÉϱàÒë³ÌÐòÔ´Â룬´ò¿ª³¬¼¶ÖÕ¶Ë£¨¿ÉÓë2440½øÐÐÃüÁî½»»¥£©£¬*** &nb ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ