线程概念:
线程是进程内部的一条执行序列(执行流),一个进程可以包含多个线程。一般将main函数(进程执行的入口)所执行的线程称之为主线程,其他线程称之为函数线程(创建线程时,需要指定线程的执行序列(函数))。
函数调用栈和函数线程的区别:
(1)函数调用栈:串行执行
(2)函数线程:并发执行
操作系统的线程的实现方式:
1、用户级线程:线程的实现是在用户空间,内核感受不到线程的存在
- 优点:灵活,内核不需要知道线程的存在;切换效率高,因为不需要陷入内核;不用修改操作系统,实现简单。
- 缺点:如果一个线程阻塞,则会造成整个进程阻塞,用户程序就会相对复杂一些。
2、内核级线程:线程的实现是在内核空间
- 优点:用户程序比较简单如果一个线程执行了阻塞操作,操作系统可以调度另外一个线程执行,因为操作系统可以监控所有的线程。
- 缺点