#include <unistd.h>
#include <pthread.h>
#include <stdio.h>
pthread_key_t key;
void *thread_fun1(void *arg)
{
printf("thread 1 start!\n");
int a = 1;
pthread_setspecific(key, (void *)a);
sleep(2);
printf("thread 1 key->data is %d\n", pthread_getspecfic(key));
}
void *thread_fun2(void *arg)
{
printf("thread 2 start!\n");
int a = 2;
pthread_setspecific(key, (void *)a);
printf("thread 2 key->data is %d\n", pthread_getspecfic(key));
}
int main()
{
pthred_t tid1, tid2;
pthread_key_create(&key, NULL);
if(pthread_create(&tid1, NULL, thread_fun1, NULL))
{
printf("crerate new thread 1 fail\n");
return 0;
}
if(pthread_create(&tid2, NULL, thread_fun2, NULL))
{
printf("crerate new thread 2 fail\n");
return 0;
}
}