linux api±Ê¼Ç£¨3£©£ºỊ̈߳¨Ò»£©
±¾ÎÄÖн«½²Êölinux»·¾³±à³ÌÖÐÏ̵߳ÄʹÓᣲ»Ëµ·Ï»°Ö±½ÓÉÏ´úÂ룺
#include <pthread.h>
#include <assert.h>
struct ThreadData
{
int i;
};
void * ThreadProc(void* arg)
{
ThreadData* data = static_cast<ThreadData*>(arg);
//do something
pthread_exit(data);
}
int main()
{
pthread_t thread_handle = 0;
ThreadData *data = new ThreadData;
//create thread
pthread_create(&thread_handle, NULL, ThreadProc, data);
//wait the created thread finished
ThreadData * out_data = NULL;
pthread_join(thread_handle, (void**)&out_data);
assert(out_data == data);
delete (out_data);
return 0;
}
ÉÏÃæµÄ´úÂëÖ÷ÒªÓÐ3¸öÏ̲߳Ù×÷µÄϵͳµ÷Óã¬Ò»°ãÇé¿öÏÂÕâ3¸ö¾Í¹»ÎÒÃÇÓÃÁË¡£
pthread_create£º´´½¨Ï̡߳£µÚÒ»¸ö²ÎÊýÊÇout²ÎÊý£¬ËüÊä³öÁË´´½¨ºÃµÄÏ̵߳Ä
±êÖ¾·û-Ïß³ÌID¡£µÚ¶þ²ÎÊýÊÇÓÃÀ´ÉèÖÃÏ̵߳ÄÊôÐԵģ¬ºóÃæ»áÓн²½â¡£µÚÈý¸ö²ÎÊýÊÇ
Ò»¸öº¯ÊýÖ¸Õ룬Õâ¸öÖ¸ÕëÖ¸ÏòµÄº¯ÊýÔÚÏ̴߳´½¨³É¹¦Ö®ºóÔÙеÄÏß³ÌÖÐÖ´ÐС£µÚËĸö
²ÎÊýÊÇÒ»¸öÖ¸Õ룬Õâ¸öÖ¸ÕëÔÚµÚÈý¸ö²ÎÊýÖ¸ÏòµÄº¯ÊýÖ´ÐÐʱ´«ÈëÕâ¸öº¯ÊýÖС£
pthread_exit£ºÔÚÏß³ÌÍ˳ö֮ǰʹÓã¬Õâ¸öº¯ÊýÓÐÒ»¸ö²ÎÊý£¬ÊÇÖ¸Õ룬Õâ¸öÖ¸Õë
ÔÚpthread_joinµÄʱºò½«±»ÊÕµ½¡£Õâ¸öº¯Êý±ØÐëÔÚÏß³ÌÄÚ²¿Ê¹Óã¨ÆäʵÎÒÃÇÖ»Òª¿´µ½
ËüûÓÐpthread_tÀàÐ͵IJÎÊýÎÒÃǾÍÖªµÀÖ»ÄÜÔÚÏß³ÌÄÚʹÓã©¡£
pthread_join£ºµÚÒ»¸ö²ÎÊýÊÇpthread_t£¬ËµÃ÷Õâ¸öº¯Êý²»ÊÇÔÚ¶ÔÓ¦µÄÏß³ÌÄÚʹÓÃ
µÄ¡£ÔÚµ÷ÓÃÕâ¸öº¯Êýºó£¬µ÷ÓÃÕߣ¨Ä³¸öỊ̈߳©½«±»×èÈû£¬²¢ÇÒÒ»Ö±µÈ´ý£¬Ö±µ½µÚÒ»¸ö²ÎÊý
¶ÔÓ¦µÄÏß³ÌÖÐÖ¹£¬¶ÔÓ¦Ïß³ÌÖÕÖ¹Ö®ºóÕâ¸öº¯Êý½«·µ»Ø¡£pthread_joinµÄµÚ¶þ¸ö²ÎÊýÊÇÒ»¸ö
Ö¸ÕëµÄÖ¸ÕëÀàÐÍ£¬out²ÎÊý£¬º¯Êý½áÊøºóËüÖ¸ÏòÁËpthread_exitº¯ÊýÊäÈëµÄµÚ¶þ¸ö²ÎÊý¡£
±¾ÎÄÖнéÉܵÄ3¸öº¯ÊýµÄʹÓÃÆäʵÊÇһЩ×î»ù±¾µÄʹÓã¬ÆäÖв¢Ã»ÓÐÉæ¼°µ½Ò»Ð©Ï¸½Ú
ºÍ×¢ÒâÊÂÏºóÃæµÄÎÄÕÂÖÐÎÒ»á½áºÏmanÊÖ²áÂ½Ðø²¹ÉÏ¡£
Ïà¹ØÎĵµ£º
ÔÎĵØÖ·£ºhttp://blog.sina.com.cn/s/blog_460b9cbf0100gxtv.html
ҪʹÓÃÐźÅÁ¿£¬Äں˴úÂë±ØÐë°üÀ¨<asm/semaphore.h>¡£Ïà¹ØµÄÀàÐÍÊÇstruct semaphore£»Êµ¼ÊµÄÐźÅÁ¿¿Éͨ¹ý¼¸ÖÖ;¾¶À´ÉùÃ÷ºÍ³õʼ»¯¡£ÆäÖÐÖ®Ò»ÊÇÖ±½Ó´´½¨ÐźÅÁ¿£¬Õâͨ¹ýsema_initÍê³É£º
viod sema_init(struct semaphore *sem,int val);
ÆäÖÐvalÊǸ³Ó ......
´´½¨×ÀÃæÍ¼±ê
Ŀǰ½«ÍøÂçÓ¦ÓÃÀ©Õ¹µ½×ÀÃæÊÇÒ»¸öÇ÷ÊÆ£¬´æÔÚןܶà½â¾ö·½°¸£¬±¾ÎÄÒÔ Mozilla Prism ΪÀý£¬ÀàËÆµÄ·½·¨Í¬ÑùÊÊÓÃÓÚ Google Chrome ¡£
1. µ½ Mozilla Prism µÄÍøÕ¾ÉÏÏÂÔØ Prism£¬µã»÷ Download Now Ö®ºó»áÌáʾÓÐÁ½ÖÖ£¬Ò»ÖÖÊÇÒÔ Mozilla Firefox À©Õ¹µÄ·½Ê½£¬ÊʺÏÒѾ°²×°ÓÐ Firefox µÄÅóÓÑ£»Ò»Ö ......
ϵͳ
# uname -a # ²é¿´ÄÚºË/²Ù×÷ϵͳ/CPUÐÅÏ¢
# head -n 1 /etc/issue # ²é¿´²Ù×÷ϵͳ°æ±¾
# cat /proc/cpuinfo # ²é¿´CPUÐÅÏ¢
# hostname &nbs ......
×î½ü×¼±¸Ñ§Ï°Ò»Ï²Ù×÷ϵͳÔÀí£¬ÓÚÊÇÕÕÀý¼ÇÂ¼Ò»Ð©ÖØÒªµÄ¶«Î÷¡£
1. ²Ù×÷ϵͳµÄ¹¦ÄÜ
´Ó×ÊÔ´¹ÜÀíµÄ½Ç¶ÈÀ´¿´£¬²Ù×÷ϵͳµÄ¹¦ÄÜÒ»°ã·ÖΪ5ÖÖ:
1.1 ´æ´¢¹ÜÀí
´æ´¢¹ÜÀí¾ÍÊǹÜÀí¼ÆËã»úÓÐÏÞµÄÄÚ´æ¿Õ¼ä£¬°üÀ¨£º´æ´¢·ÖÅä¡¢´æ´¢°²È«ºÍ ......
ÔÚLinuxÓÃc±à³Ì£¬ºÜ¶àʱºò¶¼»áÅöµ½½á¹¹ÌåÕâ¸ö¸ÅÄÓÈÆäÊÇʹÓÃÖ¸Õë·ÃÎʽṹÌå³ÉÔ±¡££¨ÏÂÃæµÄÎÄ×Ö½éÉÜ£¬Çë²Î¿¼´úÂëÀí½â£©
1. ʹÓÃÒ»¸öÐÂÔËËã·û£º->,Õâ¸öÔËËã·ûÓÐÒ»¸öÁ¬½ÓºÅ£¨-£©ºó¸úÒ»¸ö´óÓÚ·ûºÅ£¨>£©×é³É
&nbs ......