共用方式為


同步處理物件

同步處理物件 是物件,其句柄可以在其中一個 等候函式中指定, 協調多個線程的執行。 多個進程可以有相同的同步處理物件的句柄,讓進程間同步處理成為可能。

下列物件類型僅供同步處理使用。

類型 描述
事件 通知一或多個等候的線程已發生事件。 如需詳細資訊,請參閱 事件物件
Mutex 一次只能由一個線程擁有,讓線程能夠協調共用資源的互斥存取。 如需詳細資訊,請參閱 Mutex Objects
信號 維護介於零與某個最大值之間的計數,限制同時存取共用資源的線程數目。 如需詳細資訊,請參閱 Semaphore Objects
可等候定時器 通知一或多個等候的線程,指出指定的時間已經到達。 如需詳細資訊,請參閱 等候定時器物件

 

雖然可用於其他用途,但下列物件也可用於同步處理。

物件 描述
變更通知 FindFirstChangeNotification 函式所建立,當指定的目錄或目錄樹狀結構內發生指定變更類型時,其狀態會設定為發出訊號。 如需詳細資訊,請參閱 取得目錄變更通知
主控台輸入 建立主控台時建立。 指定 CONIN$ 時,CreateFile 函式,或由 getStdHandle 函式傳回控制台輸入的句柄。 當主控台的輸入緩衝區中有未讀取的輸入時,其狀態會設定為訊號,並在輸入緩衝區是空的時設定為非信號。 如需主控台的詳細資訊,請參閱 Character-Mode 應用程式
工作 藉由呼叫 createJobObject函式所建立。 作業物件的狀態會設定為在終止所有進程時發出訊號,因為已超過指定的作業結束時間限制。 如需工作物件的詳細資訊,請參閱 作業物件
記憶體資源通知 CreateMemoryResourceNotification 函式所建立。 當實體記憶體內發生指定的變更類型時,其狀態會設定為發出訊號。 如需記憶體的詳細資訊,請參閱 記憶體管理
過程 藉由呼叫 CreateProcess 函式來建立。 當進程正在執行時,其狀態會設定為非對齊,並在進程終止時設定為發出訊號。 如需行程的詳細資訊,請參閱 進程和線程
藉由 呼叫 createProcessCreateThreadCreateRemoteThread 函式,建立新線程時建立。 其狀態會在線程執行時設定為未對齊,並在線程終止時設定為訊號。 如需線程的詳細資訊,請參閱 進程和線程

 

在某些情況下,您也可以使用檔案、命名管道或通訊裝置作為同步處理物件;不過,不建議將其用於此目的。 請改用異步 I/O,並在 重疊 結構中設定的事件物件上等候。 使用事件物件更安全,因為在同一個檔案、命名管道或通訊裝置上執行多個同時重疊作業時,可能會發生混淆。 在此情況下,無法知道哪個作業導致物件的狀態發出訊號。

如需有關檔案、命名管道或通訊之 I/O 作業的詳細資訊,請參閱 同步處理和重疊輸入和輸出