“信號程序設計”是一個常用術語,指的是一種計算機程序,其主要功能是響應狀態變化或用戶輸入產生的信號或事件。幾乎是計算機系統的任何部分,從外圍設備到操作系統本身,可以生成一個信號,該信號可以被應用程序捕獲然后進行...
“信號程序設計”是一個常用術語,指的是一種計算機程序,其主要功能是響應狀態變化或用戶輸入產生的信號或事件。幾乎是計算機系統的任何部分,從外圍設備到操作系統本身,可以生成一個信號,該信號可以被應用程序捕獲然后進行處理。在許多形式中,信號編程類似于事件驅動編程。信號編程的一些最常見的用途是使用圖形用戶界面(響應用戶輸入)、網絡通信和捕獲和處理特定的低級程序系統信號。計算機程序設計中的信號可以定義為消息、事件或中斷,這取決于它的來源、系統結構甚至程序員的偏好。廣義地說,它是某種狀態或數據段發生變化的指示器,它有時還伴隨著關于已經發生的變化的附加信息,當用戶按下一個鍵時,信號可以由諸如監視器之類的硬件產生,當發生垂直回溯時,當內存分配過程中出現頁面錯誤等情況時,甚至可以從操作系統中執行。在一個應用程序中,信號編程可以采用多種類型的架構,但其中最常見的是偵聽器或觀察者模型。在這種方法中,一段用戶定義的代碼可以以某種方式傳遞給信號處理程序,通常是在操作系統中,然后調用這段代碼來處理與函數所尋找的相匹配的任何信號。函數可以處理的信號類型通常由一個稱為信號掩碼的變量決定,所以有些信號不會被傳遞到沒有被設計來處理它們的例程,第二種類型的信號編程包括有一個程序來實現一個接受傳入信號的隊列這個隊列在程序的主執行循環中被輪詢,一旦有信號進入隊列,程序就會做出反應。然后每個信號都可以進行邏輯排序、處理,忽略或傳遞給另一個進程。當使用并發進程或多線程應用程序時,信號編程可能會出現一些困難。例如,如果兩個獨立的線程在監聽兩個獨立的用戶輸入設備生成的信號,則可能會出現復雜情況,或者來自兩個網絡套接字。如果兩個用戶同時嘗試對某些數據進行更改,則程序數據可能會失去同步,并且對每個用戶的顯示都不同。使用線性隊列或實現線程同步方法可以幫助防止這種情況
-
發表于 2020-08-07 14:05
- 閱讀 ( 668 )
- 分類:電腦網絡