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ÊÖ²áÂ½Ðø²¹ÉÏ¡£
Ïà¹ØÎĵµ£º
µÚÒ»²½ °²×°MySQL
[root@localhost usr]# groupadd mysql
[root@localhost usr]# useradd -g mysql mysql
[root@localhost usr]# cd /usr/local
[root@localhost local]# tar -zxvf mysql-5.0.51.tar.gz
[root@localhost local]# cd mysql-5.0.51
[root@localhost mysql-5.0.51# ./configure --prefix=/usr/local/my ......
ÔÎĵØÖ·£º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ÊǸ³Ó ......
ÎÄÕÂÀ´Ô´£ºhttp://blog.chinaunix.net/u3/94284/showart_1970946.html
¿éÉ豸Çý¶¯£¨Ò»£©
¸ÅÀ¨£º
¿éÉ豸Çý¶¯µÚÒ»¸ö¹¤×÷ͨ³£ÊÇ×¢²á×Ô¼ºµ½Äںˣ¬ÊÇͨ¹ýregister_blkdevÍê³ÉµÄ£¬ËäÈ»register_blkdev¿ÉÓÃÀ´»ñµÃÒ»¸öÖ÷É豸ºÅ£¬µ«ÊÇËü²»Ê¹´ÅÅÌÇý¶¯Æ÷¶Ôϵͳ¿ÉÓã¬ÓÐÒ»¸ö·Ö¿ªµÄ×¢²á½Ó¿ÚÄã±ØÐëʹÓÃÀ´¹ÜÀíµ¥¶ÀµÄÇý¶¯Æ÷£¬Ê¹ÓÃÕâÒ»½Ó¿ ......
ǶÈëʽLinux¿ª·¢ÐèÒªµÄ²Î¿¼×ÊÁÏ
×÷Õߣº ¡¡À´Ô´ÓÚ£º ¡¡·¢²¼Ê±¼ä£º2008-10-6 20:45:00
Òýµ¼£º
ÈçÐè»ñµÃ¶Ô
vmlinux
ºÍ
zimage
Ö®¼äÇø±ðµÄ¼«ºÃ½âÊÍ£¬ÇëÔÚ
Alessandro Rubini
±àдµÄ
“
Kernel Configuration: dealing with the unexpected
£¨
Linux Magazine
£©µÄÒ»ÎÄÖÐÕÒµ½
&ld ......
LinuxϽâѹѹËõ¼°´ò°üÃüÁî´óÈ«
[ÈÕÆÚ£º2008-11-04]
À´Ô´£º ×÷Õߣºjenen
———————————————
.tar
½â°ü£ºtar xvf FileName.tar
´ò°ü£ºtar cvf FileName.tar DirName
£¨×¢£ºtarÊÇ´ò°ü£¬²»ÊÇѹËõ£¡£©
&mdas ......