利用勸告鎖實現程式只執行一次

2021-09-30 06:42:37 字數 411 閱讀 3293

1.  由於需要,乙個業務程式一天之中可能要被多次使用,但同一時間只能有乙個人使用,於是我們得想個辦法保證互斥。

程序間通訊有很多種方式,訊號量就不錯。但學習使用下檔案鎖,更簡潔一點。

2. 檔案系統級別的鎖有四種,最基本的兩種是勸告鎖和強制鎖,剩下的兩種是強制鎖的變種。

應用級別上對鎖的操作有兩種,加讀鎖,或者加寫鎖(又叫共享鎖與獨佔鎖)。

那麼,平時所說的加鎖,實際上應該是在勸告鎖或者強制鎖上加讀或者寫鎖。

3. 基本思路是,程式每次執行就開啟乙個固定的檔案,試圖加上寫鎖(獨占性),如果之前已經有程序執行了,那麼加鎖操作就會失敗,程式

退出,否則程式執行,直到結束(正常結束或者異常退出)都不會有其它程序執行起來。

4. **如下:

Windows讓程式只執行一次

一 通過建立互斥量來判斷 winapi winmain hinstance,hinstance,lpstr,int if getlasterror error already exists catch exception exception return 0 二 用系統原子 winapi winma...

VC程式只執行一次例項

方法一 建立全域性互斥體,然後在程序啟動時檢查該互斥體是否已被建立 只需要在initinstance 中加入 方法二 乙個程式可以執行多個例項 程序 那我們如何讓它僅執行乙個例項呢?很簡單,使用 pragma編譯器指令在程序的位址空間內建立乙個 共享節 就可以 達到目的,這個 共享節 裡的資料為多個...

VC程式只執行一次例項

方法一 建立全域性互斥體,然後在程序啟動時檢查該互斥體是否已被建立 只需要在initinstance 中加入 方法二 一 個程式可以執行多個例項 程序 那我們如何讓它僅執行乙個例項呢?很簡單,使用 pragma編譯器指令在程序的位址空間內建立乙個 共享節 就可以 達到目的,這個 共享節 裡的資料為多...