Linux----线程重点篇

  • 线程是进程内部的一条执行路径,每个进程至少有一条线程,即主线程。就是main函数的函数体,在主线程中可以通过线程库创建其他线程(函数线程)。主线程和函数线程会同时向下运行(并行和并发

并行:同一时刻同时运行

并发:同一时段交替执行

Linux----线程重点篇_第1张图片

  • 线程的实现方式主要有三种:用户级、内核级、混合模式

用户级线程是说线程的创建、销毁、管理都在用户空间完成,内核只会识别为一个进程,一条线程。

优点:灵活性;操作系统不知道线程的存在,在任何平台都可以运行;线程切换快,在用户空间完成切换,不用陷入内核;不用修改操作系统,容易实现。

缺点:编程复杂,用户必须自己进行线程管理,包括线程调度;如果一个线程阻塞,整个线程都会阻塞;不能使用对称2多处理器。

内核级线程是线程的创建、销毁、管理都有操作系统完成。内核线程使得用户编程简单,但是每次切换都得陷入内核,效率比较低。

混合模式是一部分以用户级线程创建,一部分由内核创建,是一个多对多的关系。结合了用户级线程和内核级线程的优点。

  • 线程库的使用-----线程创建

Linux----线程重点篇_第2张图片

pthread_create函数会创建一条新的函数线程,线程从pthread_fun函数入口地址开始执行,到这个函数结束。

 

你可能感兴趣的:(Linux)