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

LinuxÏÂÀûÓÃÌõ¼þ±äÁ¿ÊµÏÖ¶ÁÐ´Ëø

Ê×ÏȽéÉÜÏÂpthread_cond_t¡£ ÔÚLinuxϳÆÖ®Îª×´Ì¬±äÁ¿£¬ÓëÖ®Ïà¹ØµÄÓÐÏÂÃæ¼¸¸öAPI:
    int pthread_cond_init (pthread_cond_t *COND,pthread_condattr_t *cond_ATTR);
    int pthread_cond_signal (pthread_cond_t *COND);
    int pthread_cond_broadcast (pthread_cond_t *COND);
    int pthread_cond_wait (pthread_cond_t *COND, pthread_mutex_t *MUTEX);
    int pthread_cond_timedwait (pthread_cond_t *COND, pthread_mutex_t *MUTEX, const struct timespec *ABSTIME);
    int pthread_cond_destroy (pthread_cond_t *COND);
ÕâÀï¾Í½²ÏÂ2¸öapi£¬pthread_cond_signalºÍpthread_cond_wait£¬Ò»°ãµÄÓ÷¨ÈçÏ£º
{
    pthread_mutex_lock(lock)
...
    pthread_cond_wait(cond, lock);
...
    pthread_cond_mutex_unlock(lock);
}
pthread_cond_wait»á½âËølock£¬È»ºóÔÚcondÉϵȴý,ÕâÁ½²½ÊÇatomic operation. µ±pthread_cond_wait·µ»ØÊ±£¬»áͬʱ¶ÔlockÉÏËø. ÕâÀïÎÒµÄÀí½âÊÇ£¬Èç¹û»ñÈ¡²»µ½lockËø£¬¼´Ê¹condÒѾ­±»¼¤»î£¬pthread_cond_waitÒÀÈ»²»»á·µ»Ø¡£
{
    pthread_mutex_lock(lock);
...
    pthread_cond_signal(cond);
...
    pthread_mutex_unlock(lock);
}
pthread_cond_signalµ÷ÓÃ֮ǰһ¶¨»áÏÈÄõ½lockËø¡£pthread_cond_signal²»»áÈ¥¹ÜlockËø£¬Ö»Êǽ«cond¼¤»î£¬½ÓÏÂÈ¥ÊÍ·ÅlockËø¡£Õâʱºòpthread_cond_wait¾Í¿ÉÒԵõ½lock´Ó¶ø·µ»ØÁË¡£
ÑÔ¹éÕý´«£¬ÏÂÃæÊÇÀûÓÃÌõ¼þ±äÁ¿ÊµÏÖµÄÒ»¸ö¶ÁÐ´ËøµÄÀý×Ó£º
typedef struct pthread_rwlock
{
int active_readers; /* -1 when writer lock locked, >0 when read lock locked */
int pending_readers;
int pending_writers;
pthread_mutex_t mutex;
pthread_cond_t ok_to_read;
pthread_cond_t ok_to_write;
} pthread_rwlock_t ;
int pthread_rwlock_init(pthread_rwlock_t * lock, pthread_rwlockattr_t *attr)
{
active_readers = 0;
pending_readers = 0;
pending_writers = 0;
pthread_mutex_init(&lock->mutex, NULL);
pthread_cond_init(&lock->ok_to_read, NULL);
pthread_cond_init(&lock->ok_to_write, NULL)


Ïà¹ØÎĵµ£º

ÔÚlinuxÏÂʵÏÖweb qqµÄ×ÀÃæ»¯


´´½¨×ÀÃæÍ¼±ê
Ŀǰ½«ÍøÂçÓ¦ÓÃÀ©Õ¹µ½×ÀÃæÊÇÒ»¸öÇ÷ÊÆ£¬´æÔÚןܶà½â¾ö·½°¸£¬±¾ÎÄÒÔ Mozilla Prism ΪÀý£¬ÀàËÆµÄ·½·¨Í¬ÑùÊÊÓÃÓÚ Google Chrome ¡£
1. µ½ Mozilla Prism µÄÍøÕ¾ÉÏÏÂÔØ Prism£¬µã»÷ Download Now Ö®ºó»áÌáʾÓÐÁ½ÖÖ£¬Ò»ÖÖÊÇÒÔ Mozilla Firefox À©Õ¹µÄ·½Ê½£¬ÊʺÏÒѾ­°²×°ÓÐ Firefox µÄÅóÓÑ£»Ò»Ö ......

linux UART´®¿ÚÇý¶¯


linux UART´®¿ÚÇý¶¯¿ª·¢Îĵµ
ʱ¼ä:2010-01-09 14:24:55À´Ô´:ÍøÂç ×÷Õß:δ֪ µã»÷:482´Î
ÄÚÈݼò½é: ½éÉÜÁËLinuxϵĴ®¿ÚÇý¶¯µÄÉè¼Æ²ã´Î¼°½Ó¿Ú, ²¢Ö¸³ö´®¿ÚÓëTTYÖÕ¶ËÖ®¼äµÄ¹ØÁª²ã´Î(´®¿Ú¿É×÷TTYÖÕ¶ËʹÓÃ), ÒÔ¼°LinuxϵÄÖжϴ¦Àí»úÖÆ/ÖжϹ²Ïí»úÖÆ, »¹Óд®¿Ú»º³å»úÖÆµ±ÖÐÉæ¼°µÄÈíÖжϻúÖÆ; ÆäÖ ......

LinuxÄÚºËÄ£¿é±à³Ì¼ò½é

Ö÷Ì⣺ linuxÄÚºËÄ£¿éµÄ³ÌÐò½á¹¹--Ä£¿é¼ÓÔØº¯Êý(±ØÐë)£¬Ä£¿éÐ¶ÔØº¯Êý(±ØÐë)£¬Ä£¿éÐí¿ÉÖ¤ÉùÃ÷(±ØÐë)£¬Ä£¿é²ÎÊý(¿ÉÑ¡)£¬Ä£¿éµ¼³ö·ûºÅ(¿ÉÑ¡)£¬Ä£¿é×÷ÕߵĵÈÐÅÏ¢ÉùÃ÷(¿ÉÑ¡)
Ò»¸ölinuxÄÚºËÄ£¿éÖ÷ÒªÓÉÒÔϼ¸¸ö²¿·Ö×é³É¡£
1¡¢Ä£¿é¼ÓÔØº¯Êý"ÓÃmodule_init()À´Ö¸¶¨"(±ØÐë)
   µ±Í¨¹ýinsmodºÍmodprobeÃüÁî¼ÓÔØÄÚºËÄ£¿éʱ ......

Linux µÄÔ¶Õ÷

ÓÃÁ˽ü10ÄêµÄWindows£¬Í»È»ÓÐÐËȤȥÏëÌåÑéLinux£¬È¥¸ÐÊÜshellµÄ÷ÈÁ¦£¬ÌåÑéÖն˲Ù×÷µÄ¸Ð¾õ£¬¸üÖØÒªµÄÊDZàÒëʹÓÿªÔ´µÄÈí¼þ¡£¶àÉÙÒ²ËãÊÇΪÒÔºóʹÓ÷þÎñÆ÷»òÕßСÐÍ»úÖ®Àà´òµã»ù´¡¡£ÓÚÊÇÕý×°´ý·¢¿ªÊ¼Âþ³¤µÄlinuxÔ¶Õ÷¡£
Õ½ÒÛÒ»: RedHat
       ÎÒ£ºÀϰ壬ÓÐLinuxµÄµúô£¿
  &nbs ......

linux I2CÇý¶¯·ÖÎö

I2CÊÇPhillips¿ª·¢µÄ2ÏߵĴ®ÐÐ×ÜÏßЭÒ顣ͨ³£Ó¦ÓÃÔÚǶÈëʽϵͳÖÐÈò»Í¬µÄ×é¼þͨÐÅ£¬PCÖ÷°å¿ÉÒÔͨ¹ýI2CÀ´Ó벻ͬµÄ´«¸ÐÆ÷ͨÐÅ¡£ÕâЩ´«¸ÐÆ÷ͨ³£±¨¸æ·çÉÈËÙ¶È£¬´¦ÀíÆ÷ζȺÍÕû¸öÓ²¼þϵͳµÄÐÅÏ¢£¬Õâ¸öЭÒéÒ²¿ÉÒÔÓÃÔÚRAM chipsÉÏ£¬Ïò²Ù×÷ϵͳÌṩDIMMµÄÐÅÏ¢¡£
ÔÚ2.0ʱI2CµÄkernelÔ´Âë²»ÔÚÄÚºËÀïµÄ£¬2.4Äں˰üÀ¨ÁËÒ»µã¶ÔI2CµÄÖ§³Ö ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ