找到 177 篇文章 關於 Windows

執行緒區域性儲存 (TLS)

Arnab Chakraborty
更新於 2019-10-17 09:03:18

804 次瀏覽

執行緒共享其所屬程序的資料。這種資料共享提供了多執行緒程式設計的優勢之一。但是,在某些情況下,每個執行緒可能需要其自身某些資料的副本。此類資料稱為執行緒區域性儲存(或 TLS)。例如,在事務處理系統中,我們可能會在單獨的執行緒中為每個事務提供服務。每個事務可能會分配一個唯一的識別符號。為了將每個執行緒與其唯一的識別符號關聯起來,我們可以使用執行緒區域性儲存。很容易將 TLS 與區域性變數混淆。在單個函式呼叫期間,只有區域性變數可見,而 TLS ... 閱讀更多

什麼是執行緒取消?

Arnab Chakraborty
更新於 2020-01-31 11:07:24

5K+ 次瀏覽

線上程完成之前終止執行緒稱為執行緒取消。例如,如果多個執行緒併發地搜尋資料庫,並且一個執行緒返回結果,則可能會取消其餘執行緒。另一種情況可能是當用戶按下 Web 瀏覽器上的按鈕以停止 Web 頁面進一步載入時。通常,使用多個執行緒載入 Web 頁面——每個影像都在單獨的執行緒中載入。當用戶在瀏覽器上按下停止按鈕時,將取消載入頁面的所有執行緒。一個要... 閱讀更多

什麼是預設訊號處理程式?

Arnab Chakraborty
更新於 2019-10-17 09:00:01

1K+ 次瀏覽

訊號是傳送到程式的軟體中斷,以指示已發生重要事件。訊號可以透過以下兩種可能的處理程式之一進行處理:預設訊號處理程式使用者定義的訊號處理程式預設訊號處理程式與核心在處理該訊號時執行的每個訊號相關聯。指令碼或程式在收到訊號時執行的操作稱為預設操作。預設訊號處理程式處理這些型別的不同預設操作。一些可能的預設操作是:終止程序。忽略訊號。轉儲核心。它建立一個名為 core 的檔案,其中包含... 閱讀更多

什麼是使用者定義的訊號處理程式?

Arnab Chakraborty
更新於 2020-01-31 11:05:12

913 次瀏覽

訊號是傳送到程式的軟體中斷,以指示已發生重要事件。訊號可以透過以下兩種可能的處理程式之一進行處理:預設訊號處理程式使用者定義的訊號處理程式使用者定義的訊號處理程式可以覆蓋此預設操作,該操作稱為處理訊號。訊號以不同的方式處理。一些訊號(例如更改視窗的大小)被簡單地忽略;其他訊號(例如非法記憶體訪問)透過終止程式來處理。訊號處理程式函式可以具有任何名稱,但必須具有返回型別 void 並且具有一個 int 引數。示例:... 閱讀更多

訊號和訊號處理

Arnab Chakraborty
更新於 2019-10-17 08:55:35

4K+ 次瀏覽

訊號是傳送到程式的軟體中斷,以指示已發生重要事件。這些事件可以從使用者請求到非法記憶體訪問錯誤。一些訊號,例如中斷訊號,表明使用者已要求程式執行不屬於正常控制流程的操作。根據訊號的來源和原因,訊號可以是同步的或非同步的。所有訊號,無論是同步的還是非同步的,都遵循相同的模式:特定事件的發生會生成一個訊號。接下來,訊號被傳遞... 閱讀更多

POSIX 執行緒庫

Arnab Chakraborty
更新於 2019-10-17 08:49:29

878 次瀏覽

Pthreads 指的是 POSIX 標準 (IEEE 1003.1c),它定義了用於執行緒建立和同步的 API。這定義了執行緒行為的規範,而不是實現。規範可以以作業系統設計人員希望的任何方式由作業系統設計人員實現。因此,許多系統實現了 Pthreads 規範;大多數是 UNIX 型別系統,包括 Linux、Mac OS X 和 Solaris。儘管 Windows 本身不支援 Pthreads,但有一些適用於 Windows 的第三方實現可用。圖 4.9 中所示的 C 程式演示了用於構建多執行緒程式的基本 Pthreads API,該程式在單獨的執行緒中計算非負整數的總和。單獨的執行緒... 閱讀更多

隱式執行緒和基於語言的執行緒

Arnab Chakraborty
更新於 2019-10-17 08:46:49

3K+ 次瀏覽

隱式執行緒解決這些困難並更好地支援多執行緒應用程式設計的一種方法是從應用程式開發人員轉移到編譯器和執行時庫來建立和管理執行緒。這被稱為隱式執行緒,是當今的一種流行趨勢。隱式執行緒主要是使用庫或其他語言支援來隱藏執行緒的管理。在 C 的上下文中,最常見的隱式執行緒庫是 OpenMP。OpenMP 是一組編譯器指令以及用於用 C、C++ 或 FORTRAN 編寫的程式的 API,它為共享記憶體環境中的並行程式設計提供支援。OpenMP 識別... 閱讀更多

C 程式中的 Windows 執行緒 API

Arnab Chakraborty
更新於 2019-10-16 10:39:12

2K+ 次瀏覽

執行緒是在 Windows API 中使用 CreateThread() 函式建立的,並且——就像在 Pthreads 中一樣——一組屬性(如安全資訊、堆疊大小和執行緒的標誌)被傳遞給此函式。在下面的程式中,我們使用這些屬性的預設值。(預設值不會最初將執行緒設定為掛起狀態,而是使其有資格由 CPU 排程程式執行。)建立求和執行緒後,父執行緒必須等待它完成才能輸出 Sum 的值,因為該值由... 閱讀更多

使用 Pthreads API 進行多執行緒

Arnab Chakraborty
更新於 2019-10-16 08:36:40

2K+ 次瀏覽

Pthreads 指的是 POSIX 標準 (IEEE 1003.1c),它定義了用於執行緒建立和同步的 API,這是一個執行緒行為規範,而不是實現。此規範可以由作業系統設計人員以他們希望的任何方式實現。下面顯示的 C 程式演示了用於構建多執行緒程式的基本 Pthreads API,該程式在單獨的執行緒中計算非負整數的總和。單獨的執行緒在 Pthreads 程式中指定的函式中開始執行。在下面的程式中,這是 runner() 函式。當程式開始時,一個單一的控制執行緒在 main() 中開始。main()... 閱讀更多

多核系統中的程式設計挑戰

Arnab Chakraborty
更新於 2019-10-16 08:29:58

1K+ 次瀏覽

向多核系統的趨勢繼續給系統設計人員和應用程式程式設計師帶來壓力,要求他們建立更高效地利用多個計算核心的方法。作業系統的設計人員應該編寫使用多個處理核心來允許下面所示的並行執行的程式設計演算法:圖:多核系統上的並行執行對於應用程式程式設計師來說,挑戰在於用其風格的新程式切換現有程式,這些新程式是多執行緒的。一般來說,在多核系統程式設計中存在 5 個方面的挑戰:識別任務——這涉及檢查應用程式以查詢可以劃分為單獨的、... 閱讀更多

廣告
© . All rights reserved.