linux api±Ê¼Ç£¨6£©£ºỊ̈߳¨ËÄ£© Ïß³Ì˽ÓÐÊý¾Ý
±¾ÎĽ«ÃèÊöÏ̵߳ÄÒ»¸ö±È½ÏÖØÒªµÄÒ»·½Ã棺Ïß³Ì˽ÓÐÊý¾Ý£¬ÈçÏ´úÂ룺
#include <pthread.h>
#include <unistd.h>
#include <stdio.h>
pthread_key_t kKey = 0;
void * ThreadProc(void* arg)
{
char* a = (char*)(arg);
sleep(2);
pthread_setspecific(kKey, a);
sleep(1);
char* str = (char*)pthread_getspecific(kKey);
printf("thread: %s\n", str);
}
int main()
{
pthread_t thread_handle1 = 0;
pthread_t thread_handle2 = 0;
char a[] = {"i am A"};
char b[] = {"i am B"};
pthread_create(&thread_handle1, NULL, ThreadProc, a);
pthread_key_create(&kKey, NULL);
pthread_create(&thread_handle2, NULL, ThreadProc, b);
void* out1 = NULL;
void* out2 = NULL;
pthread_join(thread_handle1, &out1);
pthread_join(thread_handle2, &out2);
return 0;
}
ʹÓÃÏß³Ì˽ÓÐÊý¾ÝµÄ²½Ö裺
1£©Ê¹ÓÃpthread_key_create·ÖÅäÒ»¸öÏß³Ì˽ÓÐÊý¾ÝµÄkey£¬ÕâÀïÐèҪעÒâµÄÊǵ±ÎÒÃǵ÷ÓÃÁËÕâ¸öº¯Êý
Ö®ºó½ø³ÌÖÐËùÓеÄÏ̶߳¼¿ÉÒÔʹÓÃÕâ¸ökey£¬²¢ÇÒͨ¹ýÕâ¸ökey»ñÈ¡µ½µÄ˽ÓÐÊý¾ÝÊÇ»¥²»ÏàͬµÄ£¬±ÈÈçÏß³Ì
Aͨ¹ýkeyÉèÖÃÁËÊý¾ÝD£¬µ«Ïß³ÌB²¢Ã»ÓÐÉèÖÃÊý¾Ý£¬ÄÇôAͨ¹ýkey»ñÈ¡µÄÊý¾Ýµ±È»ÊÇD£¬¶øB»ñÈ¡µÄÊÇÒ»¸ö
¿ÕµÄÖµ¡£ÁíÍâÐèҪעÒâµÄÊDz»¹ÜÏß³ÌÊÇÔÚpthread_key_createµ÷ÓÃ֮ǰ»òÖ®ºó²úÉú£¬Ëü¶¼Äܹ»ÔÚº¯Êýµ÷ÓÃ
Ö®ºóʹÓÃÕâ¸ökey¡£
2£©Ê¹ÓÃpthread_setspecificº¯Êý½«keyºÍÒ»¸öÏß³Ì˽ÓÐÊý¾Ý°ó¶¨¡£
3£©Í¨¹ýpthread_getspecificº¯ÊýºÍkey»ñÈ¡µ½Õâ¸öÏ̵߳Ä˽ÓÐÊý¾Ý¡£
ÎÒÒ»Ö±¾õµÃÏß³Ì˽ÓÐÊý¾Ý²ßÂԺܺÃÓ㬵«¿¼Âǵ½Ê¹Óùý³ÌÖÐÐèÒª½øÐГϵͳµ÷ÓÔ£¨pthread_getspecificÊÇϵͳµ÷ÓÃÂ𣿣©£¬
Èç¹û±È½ÏƵ·±µØµ÷ÓÃÕâ¸öº¯ÊýµÄ»°Ëµ²»¶¨»áʹ³ÌÐòµÄÐÔÄÜϽµ£¬µ«¿´ÁËmanÎĵµÖеÄÒ»¾ä»°ºóÕâ¸öÖйËÂÇÉÔ΢¼õÇᣬ¾¡¹Ü»¹ÊÇÓÐÒÉÎÊ£º
“the function to pthread_getspecific() has been designed to favor speed and simplicity over error reporting”
ÉÏÃæËµËüµÄËÙ¶ÈÒѾ±»Éè¼ÆµØºÜ¿ìÁË¡£
Ïà¹ØÎĵµ£º
´´½¨×ÀÃæÍ¼±ê
Ŀǰ½«ÍøÂçÓ¦ÓÃÀ©Õ¹µ½×ÀÃæÊÇÒ»¸öÇ÷ÊÆ£¬´æÔÚןܶà½â¾ö·½°¸£¬±¾ÎÄÒÔ Mozilla Prism ΪÀý£¬ÀàËÆµÄ·½·¨Í¬ÑùÊÊÓÃÓÚ Google Chrome ¡£
1. µ½ Mozilla Prism µÄÍøÕ¾ÉÏÏÂÔØ Prism£¬µã»÷ Download Now Ö®ºó»áÌáʾÓÐÁ½ÖÖ£¬Ò»ÖÖÊÇÒÔ Mozilla Firefox À©Õ¹µÄ·½Ê½£¬ÊʺÏÒѾ°²×°ÓÐ Firefox µÄÅóÓÑ£»Ò»Ö ......
ǶÈëʽLinux¿ª·¢ÐèÒªµÄ²Î¿¼×ÊÁÏ
×÷Õߣº ¡¡À´Ô´ÓÚ£º ¡¡·¢²¼Ê±¼ä£º2008-10-6 20:45:00
Òýµ¼£º
ÈçÐè»ñµÃ¶Ô
vmlinux
ºÍ
zimage
Ö®¼äÇø±ðµÄ¼«ºÃ½âÊÍ£¬ÇëÔÚ
Alessandro Rubini
±àдµÄ
“
Kernel Configuration: dealing with the unexpected
£¨
Linux Magazine
£©µÄÒ»ÎÄÖÐÕÒµ½
&ld ......
×î½üÔÚѧϰLinuxϵÄC±à³Ì£¬ÂòÁËÒ»±¾½Ð¡¶Linux»·¾³ÏµÄC±à³ÌÖ¸ÄÏ¡·¶Áµ½makefile¾ÍÔ½¿´Ô½ÃÔºý£¬¿ÉÄÜÊÇÎÒµÄÀí½âÄܲ»ÐС£
ÓÚÊÇgoogleµ½ÁËÒÔÏÂÕâÆªÎÄÕ¡£Í¨Ë×Ò×¶®¡£È»ºó°ÑËüÌù³öÀ´£¬·½±ãѧϰ¡£
& ......
°²×°Kmplayer²¥·ÅÆ÷
£¨×÷Õß/l4nneret£©ÎªÁËÄÜÔÚ Linux ÏÂÒ²Äܲ¥·Å¶àýÌåÎļþ£¬ÓÚÊǰ²×°¾Ý³ÆºÜÇ¿º·µÄ Kmplayer ²¥·ÅÆ÷¡£¹ý³ÌÈçÏ£ºÔÚ http://www.mplayerhq.hu/MPlayer/ ÕâÀï¿´µ½ Kmplayer µÄÖ÷³ÌÐòÒѾ¸üе½ÁË 1.0rc2 °æ¡£
ÏÂÔØÖ÷³ÌÐò£ºMPlayer-1.0rc2.tar.bz2
Á½¸ö½âÂë°ü£ºall-20071007.tar.bz2 ºÍ windows-all-2007 ......
ǰÑÔ£ºÄ¿Ç°ÕýÔÚæÓÚARMƽ̨µÄLinuxÓ¦ÓóÌÐòµÄ¿ª·¢£¨ÆäʵÊÇ¸Õ¸ÕÆð²½Ñ§Ï°À²£©¡£µ×²ãµÄ¶«Î÷²»Óÿ¼ÂÇÁË£¬¿ª·¢°å×ÓÌṩÁËNAND Bootloader£¬ºÍLinux 2.6µÄÔ´Â룬¶øÇÒ¶¼±àÒëºÃÁË¡£×Ô¼º±àÒëµÄbootloader¿ÉÒÔÓ㬵«ÊÇLinux±àÒëºó£¬ÎļþºÜ´ó£¬ÔÝÇÒ¾ÍÓÃÈ˼ұàÒëµÄϵͳ£¬ÏÈרÐÄдӦÓóÌÐò °É¡£¡£
ÕýÎÄ£ºÒª×öµÄÈÎÎñÊÇ£¬°ÑÒ»¿é°å×ÓÉ쵀 ......