上下文 (電腦)

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書

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