第二人生的原始碼分析 七十六 判斷程式執行多個例項

2021-08-22 16:47:56 字數 793 閱讀 6388

隨著多工系統的流行,可以輕易地把同乙個程式同時執行多個例項,這對於一般的應用程式來說,是非常有用的,也大大地提高電腦的使用率。但是對於像第二人生這樣的遊戲來說,執行多個例項,是不需要的,也是不現實的。因為它需要非常多的

cpu計算,獨佔cpu還不夠用,別說執行多個例項了,並且它是全屏執行的遊戲,多個程式執行也不必要。那麼第二人生裡是使用什麼方法來實現跨平台的多個例項執行的檢測呢?下面就來看看這段**:

#002

下面鎖住這個檔案,不允許再用寫的方式開啟。

#022

if (apr_file_lock(fmarker, apr_flock_nonblock | apr_flock_exclusive) != apr_success) //flock(fileno(fmarker), lock_ex | lock_nb) == -1)

#023

#028

// no other instances; we'll lock this file now & delete on quit.

用寫的方式能開啟檔案,說明沒有另外的例項執行。

#029

apr_file_close(fmarker);

#030

} #031

llinfos << "marker file isn't locked." << llendl;

#032

return false;

#033}

上面這段**是通過使用乙個不共享寫檔案的方法來判斷是否已經存在另外乙個例項,這就是第二人生跨平台檢測是否有第二個例項執行的方法。

第二人生的原始碼分析 2 第二人生的基本功能

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!第二人生的基功能可以定義為網路遊戲 社交網路和 web2.0 作為網路遊戲,它可以讓人扮演角色,也就是第二人生裡的居民。居民只要買到地,或者租到地後就可以建造各種各樣的自己想得到的東西。比如建造遊樂園,或者建造電影院,又或者建造過山車。同時,還可以...

第二人生的原始碼分析 二十六 底層網路協議

為了理解第二人生的客戶端與伺服器的溝通,那麼下面就來分析一下第二人生採用的網路協議。在目前的網路裡,主要有兩個協議 tcp和udp,而第二人生裡是採用udp協議。tcp協議與udp協議的主要區別,就是tcp有流量控制,可靠性控制,ip層組包功能,連線需要三次握手,而udp沒有這些保證,因此udp傳送...

第二人生的原始碼分析 二十六 底層網路協議

為了理解第二人生的客戶端與伺服器的溝通,那麼下面就來分析一下第二人生採用的網路協議。在目前的網路裡,主要有兩個協議 tcp和udp,而第二人生裡是採用udp協議。tcp協議與udp協議的主要區別,就是tcp有流量控制,可靠性控制,ip層組包功能,連線需要三次握手,而udp沒有這些保證,因此udp傳送...