[求助]pthread.h库问题
编写了一个多线程程序:
4FKue$}}_G]Linux伊甸园论坛#include <unistd.h>
O3Jt6J4mv%pD
pLinux伊甸园论坛#include <stdio.h>Linux伊甸园论坛M,^b)mV)KK
#include <pthread.h>www.linuxeden.com\4QYD:NK`%vj$h
7PCL3uNAnwww.linuxeden.compthread_key_t key;
%uW-`
q!^L?TLinux伊甸园论坛"Hg,qSljQ
void echomsg(int t)|.cz*q CD2M+XH
{3vVR:e(YG&W
printf("线程退出.\n");^
]v6g5aW7|9V7a2N
printf("destructor excuted in thread %d, param=%d\n",pthread_self(),t);
o'z6p!T(?%Tk)H~]1}u}www.linuxeden.com-ED9M~ru;tOQ/k
#Nf5iU]PrGvoid *child1(void *arg) //为每一个线程单独建一个执行函数
I
|){"io%Syz_.J{Linux伊甸园论坛:v5o!k)y1cFeS
int tid=pthread_self(); //求线程id号
aD4O Sz printf("thread %d enter\n",tid);9ee+pxS4q:b1p
pthread_setspecific(key,(void *)tid); //将tid的值与key相关联,注意不是*tidLinux伊甸园论坛^"~y!eG/Jpe
sleep(2);
W8mls"YAk"L
printf("thread %d returns %d \n", tid , pthread_getspecific(key)); //读出key值,即*tid?
)P-_"{Vb`www.linuxeden.com sleep(5);S7k9G;R GtW6l6t3W
"R2iC;C!{.f`
return NULL;%Df3X$C:vrm1V
%S+L:W|{&D3FZ}|,I]}
LdQA,d'G+{_~"f(C
L0t_~d'g;cwww.linuxeden.comvoid *child2(void *arg)
:n~&?(c&ET4TLinux伊甸园论坛{,cu)h+X:C8S
int tid=pthread_self();U+D+N'{9b\
printf("thread %d enter\n",tid);www.linuxeden.com#np%gPm
L8DNZ
pthread_setspecific(key,(void *)tid); //将tid的值与key相关联,注意不是*tidLinux伊甸园论坛gw
?Z{@ZF
sleep(1);Linux伊甸园论坛/k#~7U G'H;A*vS(G:Kv
printf("thread %d returns %d \n", tid , pthread_getspecific(key)); //读出key值,即*tid?
)}{9N4HH(Z sleep(5);VCs)E4s#Z
|