目录
1. Linux的概念



2. 线程的分类

3. Linux线程实现

3.1 线程标识

3.2 线程创建

3.2.1 线程创建实例
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void* th_fn(void *arg)
{
int distance = (int)arg;
int i;
for(i = 1; i <= distance; i++){
printf("%lx run %d\n", pthread_self(), i);
int time = (int)(drand48()*100000);
usleep(time);
}
return (void*)0;
}
int main()
{
int err;
pthread_t rabbit, turtle;
//创建rabbit线程
if((err = pthread_create(&rabbit, NULL,
th_fn, (void*)50)) != 0){
perror("pthread_create error");
}
//创建turtle线程
if((err = pthread_create(&turtle, NULL,
th_fn, (void*)50)) != 0){
perror("pthread_create error");
}
//主控线程调用pthread_join(),自己会阻塞
//直到rabbit&tuttle线程结束方可运行
pthread_join(rabbit, NULL);
pthread_join(turtle, NULL);
//sleep(10);
printf("control thread id: %lx\n", pthread_self());
printf("finished\r\n");
return 0;
}
运行结果:

… …

3.3 线程终止

3.3.1 主动终止
3.3.2 被动终止

3.4 线程清理和控制函数


3.5 进程、线程启动和终止方式的比较

4. 线程的状态转换

5. 线程属性
5.1 线程属性初始化和销毁

5.2 设置和获得分离属性

参考资料
【1】海同教育Linux系统编程
【2】C语言中文网:Linux学习教程
【3】Linux C编程一站式学习
1129

被折叠的 条评论
为什么被折叠?



