方法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);
}
本文详细介绍了使用pthread库在C语言中创建和管理线程的方法。通过两个实例,展示了如何利用pthread_create函数启动多个线程,并传递参数到线程函数中。此外,还解释了如何等待所有线程完成执行,确保主线程不会提前结束。
933

被折叠的 条评论
为什么被折叠?



