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)
Ïà¹ØÎĵµ£º
poweroff
shutdown -h Á¢¿Ì¹Ø»ú
shutdown -h 10 10·Öºó¹Ø»ú
shutdown -h 20:25 ʲôʱºò¶¨Ê±¹Ø»ú
shutdown -r now
reboot
pwd ÏÔʾµ±Ç°Â·¾¶
cd .. ·µ»ØÉÏÒ»¼¶
mkdir -p animal/dog Ç¿ÖÆ´´½¨animalĿ¼ÒÔ¼°×ÓĿ¼dog
rm * ɾ³ýÎļþ»òÕßĿ¼
rm -f * Ç¿ÖÆÉ¾³ý
cat a.txt>>b.ini ½«a.txtÏÔʾ²¢×·¼Óµ½b.iniµÄÄ ......
ÔÚǶÈëʽƽ̨ÉÏÔËÐÐQTEʱ£¬Ê¹ÓõļüÅÌͨ³£²»ÊDZê×¼¼üÅÌ£¬¶øÊÇǶÈëʽÉ豸ÍâÀ©µÄÆÕͨ°´¼ü¡£ÄÇôʵÏÖQTE¼üÅÌÊäÈëµÄ·½
·¨´óÌåÉÏ¿ÉÒÔ·ÖΪÁ½Àࣺ
£¨1£©±àдһ¸öÆÕͨ°´¼üÇý¶¯£¬È»ºó¿ª±ÙÒ»¸öQTÏ̶߳ÁÈ¡°´¼üÖµ£¬ÔÚͨ¹ýÐźŰѰ´¼üÖµ·¢Ëͳö
È¥¡£ÐèÒª½ÓÊÕ¼üÅÌÊäÈëµÄÄ¿±ê£¬ÉùÃ÷²Ûº¯Êý£¬½ÓÊÕ¼üÅÌÐźš£
& ......
Ö÷Ì⣺ linuxÄÚºËÄ£¿éµÄ³ÌÐò½á¹¹--Ä£¿é¼ÓÔØº¯Êý(±ØÐë)£¬Ä£¿éÐ¶ÔØº¯Êý(±ØÐë)£¬Ä£¿éÐí¿ÉÖ¤ÉùÃ÷(±ØÐë)£¬Ä£¿é²ÎÊý(¿ÉÑ¡)£¬Ä£¿éµ¼³ö·ûºÅ(¿ÉÑ¡)£¬Ä£¿é×÷ÕߵĵÈÐÅÏ¢ÉùÃ÷(¿ÉÑ¡)
Ò»¸ölinuxÄÚºËÄ£¿éÖ÷ÒªÓÉÒÔϼ¸¸ö²¿·Ö×é³É¡£
1¡¢Ä£¿é¼ÓÔØº¯Êý"ÓÃmodule_init()À´Ö¸¶¨"(±ØÐë)
µ±Í¨¹ýinsmodºÍmodprobeÃüÁî¼ÓÔØÄÚºËÄ£¿éʱ ......
ÍøÂçÅäÖÃ:
¡¡¡¡VMware°²×°ºó»áÓм¸¸öĬÈÏÍø¿¨£¬·Ö±ðÊÇVmnet0£¬Vmnet1ºÍVmnet8£¬³£ÓÃHOST-ONLY£¬BridgeºÍNATÁªÍø·½Ê½¡£±¾ÎĽéÉÜNAT·½Ê½¡£
VmwareÉèÖãº
ÔÚVmwareÉèÖúÃUbuntuµÄÍøÂçÁ¬½Ó·½Ê½£¬Ñ¡ÔñNAT
IPµØÖ·¿ÉÒÔͨ¹ývmware>edit>virtual networking settings ²é¿´£¬ÈçÏÂͼ£º
NATÉè ......
ÆäʵÕâ²ÅÓ¦¸ÃÊÇÕâһϵÁÐÎÄÕµĵÚÒ»½Ú£¬ÒòΪÕâÆªÎÄÕ½²µÄÊÇÅ̹ſªÌìµØµÄÊ¡£»°ËµMr.
ProcessÊÇÒ»¸öÏÖ´úÈË£¬µ«ÊÇ£¬Ö»ÒªÊÇÈË£¬×ܸÃÓиö׿ÏÈ¡£ÈËÃÇ×ÜÏëÖªµÀ×Ô¼º´ÓÄÄÀ´£¬È»ºó²Å¿ÉÒÔ¹ÀÃþËãÒ»ÏÂ×Ô¼º½«È¥ÏòºÎ·½¡£ËùÒÔÔÛÒ²ÒªÁ˽âÒ»ÏÂ
LinuxµÄÊÀ½çÀïÈËÀàµÄÆðÔ´¡£
ͼ1£º´ÓÉϵ絽BIOS
°´ÏµçÔ´¿ª¹ØµÄÄǸöÕæÊµµÄÈ˾ÍÊÇLinuxÊÀ½çÀïµÄ ......