线程的概念与创建
1、线程的概念:
线程是进程内部的一条执行序列(执行流),一个进程可以包含多个线程,
将main函数执行的线程称为主线程,其他的线程称之为函数线程。
- main函数: 是进程执行的入口,函数执行的第一个
- 函数线程:创建线程时,需要指定线程的执行序列(一组有序指令--》函数)
//线程是进程内部的一条执行序列或执行的路径,一个进程可以包含多条线程C语言如何组织一条指令 ---》 函数
函数调用和线程函数的区别:
- 一般的函数调用:
int main()
{
fun();
}
// main方法和fun方法是串行执行的
- 线程函数:
void *fun(void *arg)
int main()
{
pthread_create(fun); // pthread_create此处为函数调用
}
//此处的fun只是给定函数地址来指定创建的线程从哪个函数开始执行
(main创建的线程和函数线程是并发关系)
2、线程的实现方式:
一是让进程自己来管理线程;
二是让操作系统来管理线程。
由进程自己管理就是用户态线程实现,由操作系统管理的就是内核态线程实现。
注:进程是在CPU上实现并发(多道线程),而CPU由操作系统管理的,因此,进程的实现只能由操作系统内核来进行,而不存在用户态实现的情况。但线程不同,因为线程是进程内部的东西,存在有进程直接管理线程的可能性,所以就有线程内核态和用户态实现。
//操作系统角度
用户级线程:就是用户自己做线程的切换,自己