【发布时间】:2018-10-26 15:24:19
【问题描述】:
这是代码,它可以工作:
f = File.new('test', File::CREAT | File::RDWR)
f.flock(File::LOCK_EX)
f.flock(File::LOCK_EX)
puts 'Works!'
但是,这个不起作用:
File.new('test', File::CREAT | File::RDWR).flock(File::LOCK_EX)
File.new('test', File::CREAT | File::RDWR).flock(File::LOCK_EX)
puts 'Works!'
你能解释一下这是为什么吗?我的实际问题是如何使第二个 sn-p 工作?
【问题讨论】:
-
你怎么理解,第二个例子不起作用?
-
@Milovidov 很好,我运行它并没有打印出
Works!:) -
因为它不应该打印 'Works!' :)
-
第一个 sn-p 有 same 文件描述符用于两次锁定尝试,而第二个 sn-p - 不同 个。比再读一遍图连采夫的第二句话。