实例10-3.c

来自「Linux下C语言编程例子」· C语言 代码 · 共 38 行

C
38
字号
#include <stdio.h> 
#include <pthread.h> 
pthread_key_t key; 
void echomsg(int t) 
{ 
printf("destructor excuted in thread %d,param=%d\n",pthread_self(),t); 
} 
void * child1(void *arg) 
{ 
int tid=pthread_self(); 
printf("thread %d enter\n",tid); 
pthread_setspecific(key,(void *)tid); 
sleep(2); 
printf("thread %d returns %d\n",tid,pthread_getspecific(key)); 
sleep(5); 
} 
void * child2(void *arg) 
{ 
int tid=pthread_self(); 
printf("thread %d enter\n",tid); 
pthread_setspecific(key,(void *)tid); 
sleep(1); 
printf("thread %d returns %d\n",tid,pthread_getspecific(key)); 
sleep(5); 
} 
int main(void) 
{ 
int tid1,tid2; 
printf("hello\n"); 
pthread_key_create(&key,echomsg); 
pthread_create(&tid1,NULL,child1,NULL); 
pthread_create(&tid2,NULL,child2,NULL); 
sleep(10); 
pthread_key_delete(key); 
printf("main thread exit\n"); 
return 0; 
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?