简单实现linux下c语言多线程编程,代码很简单,如下所示:
/************************************************************************* > File Name: module.c > Author: xiao5 > Mail: xiao5_zju@163.com > Created Time: 2016年02月03日 星期三 10时33分26秒 > Notes: pthread不是Linux的标准库,编译时要家-lpthread参数 ************************************************************************/ #include<stdio.h> #include<stdlib.h> #include<pthread.h> #define THREAD_NUM 10 // 定义线程的数目 /* 线程需要执行的函数 */ void *test(void *args) { printf("Thread ID %d: say 'Hello'.\n", args); return NULL; } int main() { int i, err; pthread_t child[THREAD_NUM]; // 线程标识符函数 for(i=0;i<THREAD_NUM;i++) { printf("Creating thread %d\n", i); /* * pthread_t *thread: 线程标识符 * pthread_attr_t *attr: 线程属性设置 * void *(*start_routine)(void*): 线程函数的起始地址 * void *args: 传递给线程函数的参数 */ err = pthread_create(&child[i], NULL, test, (void*)i); // 线程创建函数 if(err) { printf("Can't create thread %d\n", i); exit(0); } } /* 等待线程结束函数 */ for(i=0;i<THREAD_NUM;i++) { pthread_join(child[i], NULL); } printf("Thread initialize\n"); return 0; }
运行结果如下:
可以发现线程的异步运行!