前言:在redis相关文章中,经常可以看到这句话:“采用单线程,避免了不必要的线程上下文切换和竞争条件"。那么这里的线程上下文具体指的是什么?在阅读《操作系统概念》时正好看到了,就此记录一下我觉得比较重要的部分。
首先,先理解一下程序中上下文的概念:
摘自知乎 --vczh
每一段程序都有很多外部变量。只有像Add这种简单的函数才是没有外部变量的。一旦你的一段程序有了外部变量,这段程序就不完整,不能独立运行。你为了使他们运行,就要给所有的外部变量一个一个写一些值进去。这些值的集合就叫上下文。
(基于Linux)大体上,进程属性分为三组:进程标识,进程环境和进程上下文。
进程属性
进程标识
· 进程ID(PID)
每个进程都有唯一的标识符。当应用程序通过系统调用来触发,修改或等待时,PID用于向操作系统标识本进程。
· 凭证(credential)
每个进程必须具有关联的用户ID和一个或多个用户组ID,以便确定进程访问系统资源和文件的权限。
· 个性(personality)
进程个性并不出现在传统的UNIX系统上,但是Linux的每个进程都有一个关联的个性标识符,可以微调某些系统调用的语义。个性主要用于仿真库,以