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ÊÖ²áÂ½Ðø²¹ÉÏ¡£
Ïà¹ØÎĵµ£º
×öÒ»¸ö×îСµÄLinux kernel
2004-04-23 15:18 pm
À´×Ô£ºLinuxÎĵµ
ÏÖÔØ£ºWww.8s8s.coM
µØÖ·£ºÎÞÃû
Linux ÄÜÓжàÐ¡ÄØ ? ÿһ¸ö×ö embedded ϵͳµÄÈ˶¼°ÑС¿´³ÉµÚÒ»ÒªÎñ£¬ÆäʵÕâÊDz»¶ÔµÄ¡£Èç¹ûÎÒÃǶÔϵͳµÄºÃ»µºÍ´óС×÷ͼ£¬ËüÓ¦¸Ã³¤µÃÏñ
|
|----
|
| -----
|
| --------
| ---
|----------------------- ......
C¹æÔòÉæ¼°µ½ ¶ÓÁÐ(QUEUE) ·ÖÀàÆ÷(CLASS) ¹ýÂËÆ÷£¨FILTER£©,filter»®·ÖµÄ±ê־λ¿ÉÓÃU32»òiptablesµÄset-markÀ´ÊµÏÖ ) Ò»°ãÊÇ"¿Ø·¢"²»¿ØÊÕ linuxÏÂÓÐÁ½¿éÍø¿¨,Ò»¸öeth1ÊÇÍâÍø,ÁíÒ»¿éeth0ÊÇÄÚÍø.ÔÚeth0ÉÏ×öHTB¡££¨×¢Ò⣺filter»®·Ö±ê־λ¿ÉÓÃu32´ò±ê¹¦ÄÜ»òiptablesµÄset-mark¹¦ÄÜ£¬Èç¹ûÓÃiptablesÀ´´ò±ê¼ÇµÄ»°£¬ÏÂÐÐËÙLVÔÚet ......
´´½¨×ÀÃæÍ¼±ê
Ŀǰ½«ÍøÂçÓ¦ÓÃÀ©Õ¹µ½×ÀÃæÊÇÒ»¸öÇ÷ÊÆ£¬´æÔÚןܶà½â¾ö·½°¸£¬±¾ÎÄÒÔ Mozilla Prism ΪÀý£¬ÀàËÆµÄ·½·¨Í¬ÑùÊÊÓÃÓÚ Google Chrome ¡£
1. µ½ Mozilla Prism µÄÍøÕ¾ÉÏÏÂÔØ Prism£¬µã»÷ Download Now Ö®ºó»áÌáʾÓÐÁ½ÖÖ£¬Ò»ÖÖÊÇÒÔ Mozilla Firefox À©Õ¹µÄ·½Ê½£¬ÊʺÏÒѾ°²×°ÓÐ Firefox µÄÅóÓÑ£»Ò»Ö ......
# ifconfig # ²é¿´ËùÓÐÍøÂç½Ó¿ÚµÄÊôÐÔ
# iptables -L # ²é¿´·À»ðǽÉèÖÃ
# route -n   ......
×î½üÔÚѧϰLinuxϵÄC±à³Ì£¬ÂòÁËÒ»±¾½Ð¡¶Linux»·¾³ÏµÄC±à³ÌÖ¸ÄÏ¡·¶Áµ½makefile¾ÍÔ½¿´Ô½ÃÔºý£¬¿ÉÄÜÊÇÎÒµÄÀí½âÄܲ»ÐС£
ÓÚÊÇgoogleµ½ÁËÒÔÏÂÕâÆªÎÄÕ¡£Í¨Ë×Ò×¶®¡£È»ºó°ÑËüÌù³öÀ´£¬·½±ãѧϰ¡£
& ......