一. 多线程
1.1 安装
Ubuntu默认是没有pthread库的,需要安装。输入命令:
$ sudo apt-get install -y glibc-doc manpages-posix-dev
1.2 创建线程
#include <pthread.h>
int pthread_create(
pthread_t *restrict tidp, //新创建的线程ID指向的内存单元。
const pthread_attr_t *restrict attr, //线程属性,默认为NULL
void *(*start_rtn)(void *), //新创建的线程从start_rtn函数的地址开始运行
void *restrict arg //默认为NULL。若上述函数需要参数,将参数放入结构中并将地址作为arg传入。);
首先我们需要makeflie把所有的.c文件编译一下,接下来我们运行程序,输入命令:
$ ./1.pthread_create_exit.out
使用pthread_create创建了五个线程并显示出来,用pthread_exit来终止线程。
1.3 终止线程
void pthread_exit(void*_retval)
1.4 线程连接
int pthread_join(
pthread_t tid, //需要等待的线程,指定的线程必须位于当前的进程中,而且不得是分离线程
void **status //线程tid所执行的函数返回值(返回值地址需要保证有效),其中status可以为NULL );
1.5 线程管理
1.5.1 线程初始化
int pthread_attr_init(pthread_attr_t *attr);
1.5.2 线程销毁
int pthread_attr_destroy(pthread_attr_t *attr);