可重入(Reentrant)是指在多任務或異步環境下,一個函式、過程或執行緒可以被中斷或切換,並在稍後再次進入執行,而不會導致數據丟失或程式錯誤。
可重入的概念通常用於多任務或並發環境中,確保即使是在多個執行緒或進程同時訪問或修改數據時,也能保持數據的一致性和正確性。在編程中,可重入的函式或過程不會因為外部因素(如中斷、資源搶占)而破壞其內部狀態。可重入代碼通常具有以下特徵:
不使用或僅使用執行緒局部存儲(TLS)分配的存儲空間。
不依賴於作業系統或硬體的特定資源,如全局變數或中斷向量表。
傳遞給其的所有參數都是可預測的,並且其返回結果對於相同的輸入數據是一致的。
不調用不可重入的函式。
可重入代碼的一個典型例子是作業系統中的系統調用接口,它允許多個進程同時安全地訪問核心繫統服務。