程序 應用程式域和物件上下文

2022-02-22 17:33:17 字數 985 閱讀 7410

程序簡單說就是乙個執行的程式,是乙個作業系統級別的概念,用來描述一組資源和程式執行所必需的記憶體分配。乙個程序的失敗不會影響到其他的程序。

執行緒是程序中的基本執行單元。程序的入口點建立的第乙個執行緒被稱為主線程。 我們可以建立工作者執行緒來執行強度大的工作,主線程仍然對使用者的輸入保持響應。這使得整個程序具有更強的效能。但是,如果單個程序中的執行緒過多的話,效能反而會下降,因為cpu需要花費不少時間在這些活動的執行緒之間來回切換。

單cpu的計算機並沒有能力在同一時間執行多個執行緒。在乙個單位時間(乙個時間片)內,單cpu只能根據執行緒的優先順序執行乙個執行緒。當乙個執行緒的時間片用完的時候,它會被掛起,以便執行其他執行緒。對於執行緒來說,它們需要在掛起前記住發生了什麼,把這些情況寫到執行緒本地儲存中,並且他們還要獲得乙個獨立的呼叫棧。

system.diagnostics 命名空間定義了許多態別,允許以程式設計方式訪問程序和診斷相關的型別(比如系統事物日誌和效能計數器)。

使用上下文,clr可以確保在執行時有特殊需要的物件,可以通過攔截進出上下文的方法呼叫,得到適當和一致的處理。這個攔截層允許clr調整當前的方法呼叫,以滿足給定物件對上下文的設定要求。如果定義乙個需要自動線程安全(使用[synchronization]特性)的c#類型別,clr將會在分配期間建立"上下文同步"。每個應用程式域都有乙個預設的上下文,大多數.net物件都會載入到預設的上下文(context0)中。 如果clr判斷乙個新建立的物件有特殊需求,乙個新的上下文邊界將會在承載的應用程式域中被建立。

不需要指定特定上下文的.net型別稱為上下文靈活物件,其構建時,不需要修復型別的上下文特性,也 不需要派生自system.contextboundobject基類。 乙個上下文敏感的型別除了派生自system.contextboundobject外,也可以用特定種類的.net特性修飾,術語稱為上下文特性。所有的上下文特性派生自contextattribute基類。

乙個給定的應用程式域包含乙個或多個上下文,使用上下文,clr能夠將「有特殊需要的」物件放置到乙個邏輯容器中,確保該物件的執行時需要能夠被滿足。

Flask 應用(程式)上下文和請求上下文

狗書 中有個地方講到應用上下文和請求上下文,博主初次看的時候很懵逼,其實我們要理解這兩個東西,最應該了解it行業的 上下文 是什麼意思,這樣再去理解應用上下文和請求上下文就容易得多了,只是對博主來說是這樣的。上下文,英文context,其完整意思應當是concatenate text,聯絡文字,在i...

程序上下文和中斷上下文

程序上下文和中斷上下文是作業系統中很重要的兩個概念,這兩個概念在作業系統課程中不斷被提及,是最經常接觸 看上去很懂但又說不清楚到底怎麼回事。造成這種局面的原因,可能是原來接觸到的作業系統課程的教學總停留在一種淺層次的理論層面上,沒有深入去研究。處理器總處於以下狀態中的一種 核心態,執行於程序上下文,...

程序上下文和中斷上下文

程序上下文是一種核心所處的操作模式,此時核心代表程序執行 例如執行系統呼叫或執行核心執行緒。上下文context 上下文簡單說來就是乙個環境,相對於程序而言,就是程序執行時的環境。具體來說就是各個變數和資料,包括所有的暫存器變數 程序開啟的檔案 記憶體資訊等。乙個程序的上下文可以分為三個部分 使用者...