Linux ºÍ ¶àÏß³Ì
ÿ´Î¶¼ÊÇÓõ½£¬²éһϣ¬Ð´Ï£¬Õâ´ÎÉÔ΢¼Ç¼Ï±ʼǡ£
ºÍThreadÏà¹Ø£¬»ù±¾µÄÓÐ3¸ö¸ÅÄÏ̵߳Ľ¨Á¢ºÍÏú»Ù£»Ïß³ÌËø£»Ïß³ÌÌõ¼þ
¹ØÓÚ½¨Á¢Ị̈߳º
ret = pthread_create(&thread_id, NULL, Do_Thread, &Do_Thread_Para);
// µÚ2²ÎÊýÊÇthread ÊôÐÔ£¬Ò»°ãÎÒ²»ÓÃÉèÖÃ
// µÚ4¸ö²ÎÊýÊÇDo_ThreadµÄÈë¿Ú²ÎÊý£¬Ò»°ãÎÒ´«Ò»¸ö½á¹¹Ìå½øÈ¥
¹ØÓÚÏú»ÙỊ̈߳º
µÈ´ýÏ߳̽áÊø£ºpthread_join
Ç¿ÐÐɱµôỊ̈߳ºpthread_exit
ÈÃÏß³Ì×ÔÉú×ÔÃð£ºpthread_detach
ÎÒÒ»°ãÓõÄÊǵÚÒ»¸ö£º
pthread_join(thread_id, &Do_Thread_ret);
// µÚ¶þ¸ö²ÎÊýÊÇÏ̷߳µ»ØÖµ
¹ØÓÚÏß³ÌËø£ºµ±ÒªÔÚ¶à¸öÏ̹߳²ÏíijЩ±äÁ¿µÄʱºò£¬¾ÍÐèÒªÓÃËø¡£ÕâÑù¿ÉÒÔ±£Ö¤Ò»¸öʱ¼äµã£¬Ö»ÓÐÒ»¸öÏß³ÌÄܹ»·ÃÎÊÕâ¸öÏß³Ì
pthread_mutex_t mMutexData£»
pthread_mutex_init(&(mMutexData), NULL); // µÚ2¸ö²ÎÊýÊÇËøµÄÊôÐÔ£¬ÎÒÒ»°ãÓÃĬÈÏ£¬NULL
pthread_mutex_lock(&mMutexData); // ¼ÓËø
pthread_mutex_unlock(&mMutexData) // È¥Ëø
pthread_mutex_destroy(&mMutexData) // Ïú»Ù
¹ØÓÚÌõ¼þ£ºµ±Ä³¸öÏß³ÌÐèÒªµÈ´ýÆäËûÏ̴߳¦ÀíÍêij¸öÊý¾Ý£¨ÔËÐе½Ä³¸öµã£©µÄ»°£¬¾ÍÐèÒªÓÃÌõ¼þ£¬Ò»°ã¼Ó¸öʱ¼ä²ÎÊý£¬ÒÔ·ÀÖ¹ËÀµÈÏÂÈ¥¡£
pthread_cond_t *sConditionData£»
pthread_cond_init(&(sConditionData), NULL)£» // µÚ2¸ö²ÎÊýÊÇËøµÄÊôÐÔ£¬ÎÒÒ»°ãÓÃĬÈÏ£¬NULL
pthread_mutex_lock(&mMutexData); // Ò»°ãÌõ¼þ±ØÐëºÍËø¼ÓÔÚÒ»ÆðÓã¬ÒÔ±£Ö¤Ìõ¼þ±äÁ¿²»ÖØÈë
pthread_cond_signal(&sConditionData); // ·¢ÐźÅ
pthread_mutex_unlock(&mMutexData);
struct timespec ts;
struct timeval sTime;
struct timezone sTimeZone£»
long res;
pthread_mutex_lock(&(pApp->mMutexData));
gettimeofday(&sTime, &sTimeZone);
ts.tv_sec = sTime.tv_sec;
ts.tv_nsec += 5sTime. tv_usec * 1000 £«20*1000*1000; // 20 ms
ret = pthread_cond_timedwait(&(pApp->sConditionData), &(pApp->mMutexData), &ts); // µÈºò
if(ret == ETIMEDOUT)
{
pthread_mutex_unlock(&(pApp->mMutexData));
 
Ïà¹ØÎĵµ£º
LinuxÄں˴úÂë·ÖÎö slab.c by Áõ¿º liukang@bjut.edu.cn
slab.cÀ´×ÔlinuxÄÚºË2.4.22°æ£¬±¾Îļþ°´ÕÕGNUÐÒé·¢²¼¡£
Ò»¡¢×¼±¸ÖªÊ¶£º
slabµÄ¸ÅÄ
Ìá³öµÄÔÒò£ºÓÉÓÚ²Ù×÷ϵͳÔÚÔËÐÐÖл᲻¶Ï²úÉú¡¢Ê¹Óá¢ÊÍ·Å´óÁ¿Öظ´µÄ¶ÔÏó£¬
ËùÒÔ¶ÔÕâÑùµÄÖØ¸´¶ÔÏóµÄÉú³É½øÐиĽø¿ÉÒÔ´ó´óÌá¸ßЧÂÊ
×îÔçÓÉsunµÄ¹¤³ÌʦÌá³ö(1994Äê)²¢Ê×ÏÈÔ ......
ÔÚSWAP¿Õ¼ä²»¹»ÓõÄÇé¿öÏ£¬ÈçºÎÊÖ¹¤Ìí¼ÓSWAP¿Õ¼ä£¿ÒÔϵIJÙ×÷¶¼ÒªÔÚrootÓû§Ï½øÐУº
¡¡¡¡Ê×ÏÈÏȽ¨Á¢Ò»¸ö·ÖÇø£¬²ÉÓÃddÃüÁî±ÈÈç
¡¡¡¡dd if=/dev/zero of=/home/swap bs=1024 count=512000
¡¡¡¡ÕâÑù¾Í»á´´½¨/home/swapÕâôһ¸ö·ÖÇøÎļþ¡£ÎļþµÄ´óСÊÇ512000¸öblock£¬Ò»°ãÇé¿öÏÂ1¸öblockΪ1K£¬ËùÒÔÕâÀï¿Õ¼äÊÇ512M¡£½Ó×ÅÔ ......
¡¡¡¡vi/vim ÖпÉÒÔʹÓà :s ÃüÁîÀ´Ìæ»»×Ö·û´®¡£ÒÔǰֻ»áʹÓÃÒ»ÖÖ¸ñʽÀ´È«ÎÄÌæ»»£¬½ñÌì·¢ÏÖ¸ÃÃüÁîÓкܶàÖÖд·¨(vi ÕæÊÇÇ¿´ó°¡£¬»¹ÓкܶàÐèҪѧϰ)£¬¼Ç¼¼¸ÖÖÔÚ´Ë£¬·½±ãÒÔºó²éѯ¡£
¡¡¡¡:s/vivian/sky/ Ìæ»»µ±Ç°ÐеÚÒ»¸ö vivian Ϊ sky
¡¡¡¡:s/vivian/sky/g Ìæ»»µ±Ç°ÐÐËùÓÐ vivian Ϊ sky
¡¡¡¡:n,$s/vivian/sky/ Ìæ»»µÚ n ÐÐ ......
1 ¾³£ÐèÒª¿Ì¼ ISO Îļþ£¬cdrecord ¿ÉÒÔʵÏÖ
cdrecord ÆäʵÊÇÒ»¸öÈíÁ´½Ó
lrwxrwxrwx 1 root root 5 2009-05-04 22:42 /usr/bin/cdrecord -> wodim
¿Ì¼µÄÃüÁîÈçÏ£º
wodim -v dev=6,0,0 xx.iso # dev ¿ÉÒÔÓà --scanbus ²é¿´
2 ......
oracle dataguardÊÇÖ¸Ò»ÖÖÊý¾Ý¿â¼¶±ðµÄHA·½°¸£¬×îÖ÷ÒªµÄ¹¦ÄÜÊÇÈÝÔÖ£¬Êý¾Ý±£»¤£¬¹ÊÕϻָ´µÈ
ÔÚÉú²úÊý¾Ý¿âµÄÊÂÎñÒ»ÖÂÐÔʱ£¬Ê¹ÓòúÉúµÄÎïÀíÈ«±¸·Ý´´½¨±¸¿â£¬±¸¿âͨ¹ý´«Êä¹ýÀ´µÄ¹éµµÈÕÖ¾×Ô¶¯Î¬»¤±¸ÓÃÊý¾Ý¿â
½«ÖØ×öµÄÊý¾ÝÓ¦Óõ½±¸ÓÿâÉÏ¡£
1£¬Ç°Ì᣺
primary£º192.168.18.1;
oracle_SID:db1
  ......