多线程(一):生成多个线程
来源:互联网 发布:把男朋友撩硬不管知乎 编辑:程序博客网 时间:2024/04/29 14:56
其实只在前一篇文章的基础上改了少许代码
#include <stdio.h>#include <pthread.h>#define THREADNUM 3void thread(int i) {printf("This is thread:%d\n", i);pthread_exit(NULL);}int main(void) {pthread_t id[THREADNUM];int ret, i;for(i=0; i<THREADNUM; i++) {ret = pthread_create(&id[i], NULL, (void *)thread, i);if(ret != 0) {printf("Create thread error!\n");exit(1);}}for(i=0; i<THREADNUM; i++) {pthread_join(id[i], NULL);}printf("This is the main process.\n");return 0;}
这次的代码给thread函数传递了一个参数,而这个参数是通过pthread_create函数的第四个参数传过去的。
顺便提一句,pthread_create中的第三个参数,使用(void *)thread或者是(void *)&thread都对。(可能只是暂时都对,这个问题先放一边)
需要注意的是,pthread_join要另外写一个for循环,如果把这个函数与第一个for循环放到一起的话,从速度或是什么其他角度看上去,感觉不能算是多线程,三个线程还是顺序执行的。
执行此代码,会发现打印出的三个线程的顺序是随机的(不一定是0 1 2的顺序),创建多个线程成功~
- 多线程(一):生成多个线程
- 多线程系列(二)---多个线程多个锁
- j2me多线程(一) 线程的实现
- linux多线程学习(一)---线程基础
- 关于多线程(一)---线程的状态
- Java多线程之线程池(一)
- Java多线程之线程锁(一)
- java多线程(一):进程与线程
- Java 多线程(一) 线程的创建
- 多线程学习之(一)线程安全性
- 多线程(一)进程与线程概念
- 多线程之线程池概述(一)
- Java多线程(一)--线程同步
- java 多线程 (一)线程的实现
- 多线程详细解析(一) 创建线程
- java多线程(一)之多线程基础
- Java 多线程(一) 线程的创建
- java多线程(一)线程状态与创建线程
- 创建临时唯一的文件
- 【前端重构技能天赋】(二)——Javascript、CSS篇
- HDU 2671
- iptables remote port forwarding
- 历史名人6——凯撒
- 多线程(一):生成多个线程
- ruby远程复制文件
- 如何有效压缩Word文件和PowerPoint文件
- 素数距离问题
- CLM 系列代码实现考虑
- MIC编程(4)——MIC灵活高效的编程方式
- 城东客运站9月迁至纺织城 主城区长途车站将全外迁
- IE6 在float对象边的块之间出现3px间距的处理方法( IE6 3px bug)
- ruby拷贝