迅速掌握Ruby文件鎖概念
Ruby語(yǔ)言是一款完全面向?qū)ο蟮哪_本語(yǔ)言。其靈活性,易操作等特有的性質(zhì)被眾多編程人員所接受。在這里我們將會(huì)認(rèn)識(shí)到Ruby文件鎖的一些相關(guān)概念。#t#
操作系統(tǒng)提供文件鎖,F(xiàn)ile的flock方法將會(huì)鎖或者解鎖一個(gè)文件,它的參數(shù)是下面的實(shí)例中的任意一個(gè). File::LOCK_EX, File::LOCK_NB, File::LOCK_SH, File::LOCK_UN,或者用邏輯操作符or來(lái)組合這些Ruby文件鎖實(shí)例.
- file = File.new("somefile")
- file.flock(File::LOCK_EX)
- # 排他鎖; 一個(gè)時(shí)刻只能有一個(gè)
進(jìn)程獲得鎖。 - file.flock(File::LOCK_UN)
- # 現(xiàn)在解鎖?!?
- file.flock(File::LOCK_SH)
- #共享鎖,一個(gè)時(shí)刻,可以有多個(gè)
進(jìn)程獲得給定文件的鎖?!? - file.flock(File::LOCK_UN)
- # 解鎖
- locked = file.flock(File::
LOCK_EX | File::LOCK_NB) - #lock_nb表示加鎖時(shí)不阻塞,
因此這邊將會(huì)返回false
希望通過(guò)上面介紹的Ruby文件鎖具體操作方法,對(duì)大家有所幫助。