#include<pthread.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<errno.h>
void * func(void * arg)
{
printf("func run...\n");
return NULL;
}
int main()
{
pthread_t t1;
int err = pthread_create(&t1,NULL,func,NULL);
if(err!=0)
{
printf("thread_create Failed:%s\n",strerror(errno));
}else{
printf("thread_create success\n");
}
sleep(1);
return EXIT_SUCCESS;
}
int pthread_create(pthread_t *thread,const pthread_attr_t *attr, void *(*start_routine)(void*), void *arg);
gcc 1createthread.c -c -o 1createthread.o gcc 1createthread.o -o thr1 -lpthread
int pthread_join(pthread_t th, void **thr_return);。
#include<pthread.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<errno.h>
void * func(void * arg)
{
int i=0;
for(;i<5;i++)
{
printf("func run%d\n",i);
sleep(1);
}
int * p = (int *)malloc(sizeof(int));
*p=11;
return p;
}
int main()
{
pthread_t t1,t2;
int err = pthread_create(&t1,NULL,func,NULL);
if(err!=0)
{
printf("thread_create Failed:%s\n",strerror(errno));
}else{
printf("thread_create success\n");
}
void *p=NULL;
pthread_join(t1,&p);
printf("线程退出:code=%d\n",*(int*)p);
return EXIT_SUCCESS;
}
#include<pthread.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<errno.h>
void * func(void * arg)
{
int i=0;
while(1)
{
if(i==10)
{
int * p = (int *)malloc(sizeof(int));
*p=11;
pthread_exit(p);
}
printf("fun run %d\n",i++);
sleep(1);
}
return NULL;
}
int main()
{
pthread_t t1,t2;
int err = pthread_create(&t1,NULL,func,NULL);
if(err!=0)
{
printf("thread_create Failed:%s\n",strerror(errno));
}else{
printf("thread_create success\n");
}
void *p=NULL;
pthread_join(t1,&p);
printf("线程退出:code=%d",*(int*)p);
return EXIT_SUCCESS;
}
void pthread_exit(void *arg);
int pthread_detach(pthread_t th);
int pthread_cancel(pthread_t th);
#include<pthread.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<errno.h>
void * func1(void * arg)
{
while(1)
{
printf("fun run...\n");
sleep(1);
}
return NULL;
}
int main()
{
pthread_t t1;
if(pthread_create(&t1,NULL,func1,NULL)!=0)
{
printf("thread_create Failed:%s\n",strerror(errno));
return -1;
}
sleep(5);
pthread_cancel(t1);
pthread_join(t1,NULL);
return EXIT_SUCCESS;
}
#include<pthread.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<errno.h>
void * func(void * arg)
{
int i=0;
for(;i<5;i++)
{
printf("func run%d\n",i);
sleep(1);
}
int * p = (int *)malloc(sizeof(int));
*p=11;
return p;
}
int main()
{
pthread_t t1;
pthread_attr_t attr;//申明一个attr的结构体
pthread_attr_init(&attr);//初始化结构体
pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);//设置线程为分离线程
int err = pthread_create(&t1,&attr,func,NULL);
if(err!=0)
{
printf("thread_create Failed:%s\n",strerror(errno));
}else{
printf("thread_create success\n");
}
pthread_attr_destroy(&attr);
pthread_join(t1,NULL);
printf("主线程退出\n");
return EXIT_SUCCESS;
}
|
值 |
说明 |
| PTHREAD_CREATE_DETACHED | 设置线程为分离状态 |
| PTHREAD_CREATE_JOINABLE | 设置线程为正常状态 |
#include<pthread.h>
#include<stdio.h>
#include<pthread.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<errno.h>
void * func(void * arg)
{
int threadno =*(int*)arg;
int i=0;
for(;i<10;i++)
{
printf("%d thread%d \n",threadno,i);
sleep(1);
}
return NULL;
}
int main()
{
pthread_t t1,t2;
int i1=1,i2=2;
pthread_create(&t1,NULL,func,&i1);
pthread_create(&t2,NULL,func,&i2);
pthread_join(t1,NULL);
pthread_join(t2,NULL);
printf("主线程退出\n");
return EXIT_SUCCESS;
}
#include<pthread.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<errno.h>
pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
void * func(void * arg)
{
pthread_mutex_lock(&mutex);//对mutex加锁,其他线程进入后将会挂起,知道这个锁被解锁
int threadno =*(int*)arg;
int i=0;
for(;i<10;i++)
{
printf("%d thread%d \n",threadno,i);
sleep(1);
}
pthread_mutex_unlock(&mutex);
return NULL;
}
int main()
{
pthread_t t1,t2;
int i1=1,i2=2;
pthread_create(&t1,NULL,func,&i1);
pthread_create(&t2,NULL,func,&i2);
pthread_join(t1,NULL);
pthread_join(t2,NULL);
printf("主线程退出\n");
return EXIT_SUCCESS;
}
pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
int pthread_mutex_lock(pthread_mutex_t *mutex); int pthread_mutex_unlock(pthread_mutex_t *mutex);
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有