线程的创建及运行
来源:互联网 发布:江苏电信网络测速 编辑:程序博客网 时间:2024/06/06 19:27
#include <stdio.h>#include <pthread.h>#include <unistd.h>void* thread_main(void*);int main(){pthread_t t_id;int thread_param=5;if(pthread_create(&t_id,NULL,thread_main,&thread_param)!=0){puts("pthread_create() error\n");return -1;}sleep(2);puts("end of main");return 0;}void* thread_main(void* arg){int i;int cnt=*((int*)arg);//转换for(i=0;i<cnt;++i){sleep(1);puts("running thread");}}
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <pthread.h>#include <unistd.h>void* thread_main(void*);int main(){pthread_t t_id;int thread_param=5;void* thr_ret;if(pthread_create(&t_id,NULL,thread_main,(void*)&thread_param)!=0){puts("pthread_create error");return -1;}//调试语句//printf("创建线程的ID:%lud\n",(long unsigned int)t_id);if(pthread_join(t_id,&thr_ret)!=0){puts("pthread_join error");return -1;}printf("Thread return message: %s \n",(char*)thr_ret);free(thr_ret);return 0;}void *thread_main(void *arg){int i;int cnt=*((int*)arg);//强制转换char *msg=(char *)malloc(sizeof(char)*50);strcpy(msg,"Hello,I'am thread~\n");for(i=0;i<cnt;++i){sleep(1);puts("running thread");}return (void*)msg;}
#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <pthread.h>int sum=0;void *summation(void *arg){int start=((int*)arg)[0];int end=((int*)arg)[1];while(start<=end){sum+=start;++start;}return NULL;}int main(){pthread_t id_t1,id_t2;//保存线程IDint range1[]={1,5};int range2[]={6,10};pthread_create(&id_t1,NULL,summation,(void*)range1);//创建线程1//调试语句printf("sum:%d\n",sum);pthread_create(&id_t2,NULL,summation,(void*)range2);//创建线程2//调试语句printf("sum:%d\n",sum);//pthread_join(id_t1,NULL);//等待线程id_t1终止//pthread_join(id_t2,NULL);//等待线程id_t2终止//调试//sleep(5);printf("result:%d\n",sum);return 0;}
#include <stdio.h>#include <unistd.h>#include <stdlib.h>#include <pthread.h>#define NUM_THREAD 100typedef long long LL;void* thread_inc(void*);void* thread_des(void*);LL sum=0;int main(){pthread_t thread_id[NUM_THREAD];int i;printf("sizeof long long:%d\n",(int)sizeof(long long));for(i=0;i<NUM_THREAD;++i)//创建100个线程{if(i%2)pthread_create(&thread_id[i],NULL,thread_inc,NULL);elsepthread_create(&thread_id[i],NULL,thread_inc,NULL);}for(i=0;i<NUM_THREAD;++i)pthread_join(thread_id[i],NULL);//等待线程终止printf("result:%lld\n",sum);return 0;}void* thread_inc(void* arg){int i;for(i=0;i<50000000;++i)sum+=1;return NULL;}void* thread_des(void* arg){int i;for(i=0;i<50000000;++i)sum-=1;return NULL;}
阅读全文
0 0
- 线程的创建及运行
- 守护(Daemon)线程的创建及运行
- 线程的创建和运行
- 多线程,线程创建及关闭句柄存在的问题,终止线程的运行的几个函数
- 进程、线程、线程的创建及多线程
- java 多线程总结(一) 创建线程的几种方法及对终止线程运行的讨论
- 内核线程的创建并运行
- java线程的创建和运行
- Java线程的创建和运行
- 1.1线程的创建与运行
- 1.7守护线程的创建与运行
- 线程的创建和运行(未完待续)
- java多线程---线程的创建和运行
- java线程技术2_线程的创建运行终止
- java线程技术2_线程的创建运行终止
- java线程技术——线程的创建运行终止
- 线程的创建及简单使用
- 线程的创建方式及相关知识
- docker实战2 (docker swarm的应用,docker集群的构建,在docker集群中部署服务的创建与更新)
- 设计模式 外观模式 一键电影模式
- 微信JSAPI支付教程
- 设计模式 适配器模式 以手机充电器为例
- 61. Rotate List
- 线程的创建及运行
- 设计模式 命令模式 之 管理智能家电
- APP开发实战176-服务器接口的单元测试
- python range和xrange
- angularjs学习笔记01--ng-view和路由的使用
- 枚举类详解
- RabbitMQ安装 配置
- 设计模式 单例模式
- 学习初计划