方法1
pthread_create(&t_a[i],NULL,thread1,(void *)i);
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include<unistd.h>
void *thread1(void *arg)
{
printf("In thread %ld, id = %lu\n",(long)arg,pthread_self());
}
void main()
{
long i;
int *p;
printf("%ld\n",sizeof p);
pthread_t t_a[6];
for(i=0;i<6;i++){
pthread_create(&t_a[i],NULL,thread1,(void *)i);
}
for(i=0;i<6;i++)
pthread_join(t_a[i],NULL);
}
方法2
pthread_create(&t_a[i],NULL,thread1,(void *)&index[i]);
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include<unistd.h>
void *thread1(void *arg)
{
printf("In thread %d, id = %lu\n",*(int*)arg,pthread_self());
}
void main()
{
int i;
int *p;
printf("%ld\n",sizeof p);
pthread_t t_a[6];
int index[6];
for(i=0;i<6;i++){
index[i]=i;
pthread_create(&t_a[i],NULL,thread1,(void *)&index[i]);
}
for(i=0;i<6;i++)
pthread_join(t_a[i],NULL);
}