一、协程、进程和线程
1.协程:英文名是 Coroutine, 又称为微线程,是一种用户态的轻量级线程。协程不像线程和进程那样,需要进行系统内核上的上下文切换,协程的上下文切换是由程序员决定的。(详见博客收藏—Linux分类)
2.进程:一组有序指令+数据+资源的集合。
3.线程: 线程是进程内部的一条执行序列(执行流),一个进程至少包含一条线程-------main函数所代表的执行序列,称之为主线程,可以通过线程库创建其他线程------函数线程。
二、线程基础
1.函数调用和函数线程
2.线程的实现方式
(1)内核级线程
(2)用户级线程:线程维护在用户态中,内核态中没有。
(3)混合级线程:线程一部分在用户态维护,另外一部分在内核态维护。
3.在Linux系统上如何使用多线程-----》线程库(libpthread.so)
注意:gcc编译链接时要加上动态库libpthread.so,否则会显示无法定义。
(例 --》正确命令:gcc -o pthread pthread.c -lpthread)
执行程序pthread,如下:
4.线程的有关操作函数
(1)
(2)
(3)
5.进程和线程的区别(这里只有部分区别)
6.创建线程的函数的传参方式
7.多线程共享(见下图)
8.线程同步:多线程是并发执行,但是在访问临界资源时,需要线程按照一定的顺序区访问。
相关涉及:
9.互斥锁的使用
10.例题