上下文 (计算机)

在计算机科学中,任务(task)的上下文(英語:context)是一个任务所必不可少的一组数据(该任务可以是进程线程)。这些数据允许任务中断,在这之后仍可在同一个地方继续执行。上下文的这一概念在中断的任务的场景下具有重大意义,其中,任务在被中断之后,处理器保存上下文并提供中断处理(interrupt service routine)。因此,上下文越小,延迟越小。

上下文的数据可能存放于处理器寄存器、任务所利用的内存、某些操作系统管理的任务所使用的控制寄存器(control registers)。

context在其他语言的定义

Java

tomcat的javax.servlet.ServletContext接口的官方文档如此描述,ServletContext定义了servlet与servlet容器通讯所需要的一组方法[1]

Python

Python的一个经典语法——with语句上下文管理器。如下例:

with EXPRESSION as TARGET:
    SUITE

Python 3的官方文档描述如下:[2]

上下文管理器是一个对象,它定义了在执行with语句时要建立的运行时上下文。上下文管理器处理进入和退出所需运行时上下文以执行代码块。通常使用with语句(在with语句中描述),但是也可以通过直接调用它们的方法来使用。上下文管理器的典型用法包括保存和恢复各种全局状态,锁定和解锁资源,关闭打开的文件等等。

在PEP-0343文档[3]中提到,context是一个暧昧的词汇,并提及"runtime context"(运行时上下文)和"runtime environment"是类似的。

Go

Go语言的context包如此描述:context包定义了Context类型,该类型包含了截止日期、取消信号以及跨API的进程间的其他用户级别范围的变量。[4]

外部链接

参考资料

  1. ^ ServletContext (Servlet 3.1 API Documentation - Apache Tomcat 8.0.53). tomcat.apache.org. [2020-01-15]. (原始内容存档于2020-01-15). 
  2. ^ 3. 数据模型 — Python 3.8.1 文档. docs.python.org. [2020-01-15]. (原始内容存档于2020-04-27). 
  3. ^ PEP 343 -- The "with" Statement. Python.org. [2020-01-15]. (原始内容存档于2014-12-14) (英语). 
  4. ^ context - The Go Programming Language. golang.org. [2020-01-15]. (原始内容存档于2020-01-15).