位置:成都达内教育IT培训机构 > 学校动态 > 疫情后浅谈什么是线程以及线程上下文切换
疫情后浅谈什么是线程以及线程上下文切换
来源:成都达内教育IT培训机构时间:2021/10/3 8:55:14
疫情后浅谈什么是线程以及线程上下文切换
线程是我们日常生活中经常会用到的一个机制,关于线程是什么以及线程的优缺点,还有线程是如何进行上下文切换的,这些都是需要我们去了解的,从而才能更好地了解线程,有助你的线程程序代码的开发。
本文主要对线程是什么,以及相关的延伸,包括线程的上下文切换是如何进行的,谈到了与进程的联系,从而帮助你更好地认识线程。
线程是什么
早些时候的操作系统是以进程作为独立运行的基本单位,直到后来,计算机科学家又提出了更小的可以独立运行的基本单元,即线程。12-1.png
现代化操作系统中,进程是较小的资源分配单位,线程是较小的运行单位,一个进程中可以有一个或多个线程,每个线程都有独立的一套寄存器和栈,从而增加了线程的控制流是相对独立的。
线程的优缺点:
优点:
在一个进程中可以同时存在多个线程。
使进程能够多任务并行处理。
在同进程下,各个线程可以共享进程资源(同进程内的多线程通信是非常简单和的)
更轻量与
缺点:
由于进程资源共享,因此存在资源竞争,需要通过锁机制进行协同。
如果进程中有一条线程奔溃,那么将导致其所属进程的所有线程奔溃(一般游戏的用户设计不会使用多线程)
线程的上下文切换
如果一个进程只有一个线程时,那么该进程就等于一个线程,线程上下文的切换分两种情况:
不同进程的线程,切换的过程就和进程上下文是一样的。那么,进程的上下文又是如何切换的呢?下面会讲到,这里先跳过。
两个线程是属于同一个进程时,由于虚拟内存是共享的,因此当切换时,这些资源保持不动,只需切换线程的私有数据、寄存器等非共享数据即可。
因此,与进程相比,线程的上下文切换开销要少很多。
进程的上下文是怎么切换的
1.首先进程是由内核管理和调度的,因此进程上下文切换发生在内核态,其内容包括用户空间资源(虚拟内存、栈、全局变量等)和内核空间资源(内核堆栈、寄存器等)。
2.当进行上下文切换时,个进程的上下文被保存到它的PCB(进程的标识,类似于id)中,当前进程的PCB上下文被载入到CPU中,使该进程能够继续执行。
尊重原创文章,转载请注明出处与链接:http://www.peixun360.com/3857/news/418726/违者必究!
以上就是成都达内教育IT培训机构 小编为您整理 疫情后浅谈什么是线程以及线程上下文切换的全部内容。