社区
Java SE
帖子详情
FileLock.lock为什么不阻塞?
Andy84920
2007-05-26 11:12:57
FileLock flock = null;
flock = fc.lock();
我发现在大量线程同时需要调用上面这段代码的时候,fc.lock操作并没有去阻塞等待锁现象,而是直接抛出了异常,跟这个lock方法说的阻塞不一样啊,怎么回事呢?
...全文
230
3
打赏
收藏
FileLock.lock为什么不阻塞?
FileLock flock = null; flock = fc.lock(); 我发现在大量线程同时需要调用上面这段代码的时候,fc.lock操作并没有去阻塞等待锁现象,而是直接抛出了异常,跟这个lock方法说的阻塞不一样啊,怎么回事呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Theface
2007-05-27
打赏
举报
回复
>我发现在大量线程同时需要调用上面这段代码的时候
当第一个lock上之后在没有释放的情况下你再lock肯定有异常,仔细看异常信息.
jdl2000
2007-05-27
打赏
举报
回复
摆脱,总工就两句话,谁知道怎么回事,有可能是你其他的线程关闭了,也有可能是调用时出现了异常,再或者你锁的区域出现了问题,那段区域可能关闭了,可能中断了,你自己再看看
Andy84920
2007-05-27
打赏
举报
回复
to Theface:
当第一个lock上之后在没有释放的情况下你再lock肯定有异常,仔细看异常信息.
================================
那在什么情况下会阻塞呢?不是在获得不到锁的情况下(别的线程占用了锁)才会阻塞等待吗?怎么去发生异常呢?
f
lock
:Go中的线程安全文件锁定库(最初为github.comtheckmango-f
lock
)
群 f
lock
实现了线程安全的sync.
Lock
er接口,用于文件锁定。 它还包括一个非
阻塞
的Try
Lock
()函数,以允许锁定而不会
阻塞
执行。 执照 f
lock
是根据BSD 3-条款许可发布的。 有关更多详细信息,请参见LICENSE文件。 兼容 该程序包使用了Go 1.7中引入的context程序包。 因此,该软件包对Go 1.7+具有隐式依赖性。 安装 go get -u github.com/gofrs/f
lock
用法 import "github.com/gofrs/f
lock
"
file
Lock
:= f
lock
. New ( "/var/
lock
/go-
lock
.
lock
"
锁——
File
Lock
文件锁
文件锁(
File
Lock
),使用文件锁锁住文件后,其他进程不能操作读或写文件,除非当前进程release或un
lock
文件锁。 前两天看码云上的oim项目源码,该项目即使用了文件锁来防止同一账户重复登录(当然,该方法是不太合理的,因为用户换一台电脑或修改锁文件路径即可同一账户重复登录,但也是一个文件锁使用的不错的例子) 文件锁分为共享锁、独占锁,加锁方式有
阻塞
(
lock
())和非
阻塞
(tryL...
Java 进程间文件锁
File
Lock
详解
转载自 Java 进程间文件锁
File
Lock
详解 最近需要在两个进程中对同一个文件进行操作,正好Java 提供了文件锁
File
Lock
类,利用这个类可以控制不同程序(JVM)对同一文件的并发访问,实现进程间文件同步操作。
File
Lock
是java 1.4 版本后出现的一个类,它可以通过对一个可写文件(w)加锁,保证同时只有一个进程可以拿到文件的锁,这个进程从而可以对文件做访问;而其它...
JAVA 文件锁
File
Lock
JAVA 文件锁
File
Lock
概述
File
Lock
是java 1.4 版本后出现的一个类,它可以通过对一个可写文件(w)加锁,保证同时只有一个进程可以拿到文件的锁,这个进程从而可以对文件做访问;而其它拿不到锁的进程要么选择被挂起等待,要么选择去做一些其它的事情, 这样的机制保证了众进程可以顺序访问该文件。也可以看出,能够利用文件锁的这种性质,在一些场景下,虽然我们不需要操作某个文件, ...
文件锁-
File
Lock
最近在看flume部分功能的源码,关于
File
Lock
的使用,其实在很多开源框架都有涉及,我所看过的有lucene,zookeeper,hadoop,es等开源框架都有用到,下面简单的介绍下
File
Lock
。 1,
File
Lock
是独占锁,控制不同程序(JVM)对同一文件的并发访问。2,可以对写文件(w)加锁,而且必须是可写文件,不然回报:java.nio.channels.NonWrit...
Java SE
62,615
社区成员
307,318
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章