上下文 (電腦)

在電腦科學中,任務(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).