多个地方同时向一个文件读写的互斥问题解决方案
来源:互联网 发布:windows推送通知服务 编辑:程序博客网 时间:2024/05/20 06:25
场景:多个地方同时向一个文件读写据,如何保持操作互斥性,即一次只能一个操作(比如读或写)进行。
原文:http://blog.csdn.net/hbcui1984/archive/2006/12/12/1440226.aspx
我们希望在一个线程在操作某个文件的时候,其他线程不能对该文件进行读或写操作,要怎么才能实现呢?利用java提供的synchronized似乎无法完成,因为每个线程是在程序中动态抛出的.郁昧了一天之后,我终于找到了一个解决办法,就是利用java.nio包中的FileChannel对文件进行加锁.
具体实现方法如下:
1.写文件的线程
2.读文件的线程
3.分别启用两个线程
4.结果分析
以上程序在对一个文件执行写操作前,先对该文件加锁,这样其他线程就不能再对该文件操作,等该线程的写操作结束,释放资源,其他线程才可以继续对该文件执行相应的读写操作.
可是,郁昧的是,这段程序在windows下可以正确执行,在linux下却无效.根据<Thinking in Java>上的观点是:对独占锁或者共享锁的支持必须由底层的操作系统提供。
- 多个地方同时向一个文件读写的互斥问题解决方案
- TRTOS +TQFS多个任务同时读写文件的互斥操作
- PHP解决多进程同时读写一个文件的问题
- PHP解决多进程同时读写一个文件的问题
- PHP解决多进程同时读写一个文件的问题
- eeplat平台开发中限制多个用户同时登录同一个账号的问题解决方案
- 文件读写互斥
- c# 实现2个程序同时操作读写一个文件、一个读一个写
- 解决多线程同时读写一个文件的问题
- PHP解决多线程同时读写一个文件的…
- [原]文件读写互斥
- JSP向MYSQL读写中文乱码问题解决方案
- iSCSI协定对多User同时写一个target device的互斥问题讨论
- 【day16】写代码来解决多进程/线程同时读写一个文件的问题。
- 代码来解决多进程/线程同时读写一个文件的问题。
- 一个解决方案创建多个项目问题解决方案
- 对一个文件多个读写
- secureCRT同时向多个打开的seesion发送命令
- 面试题
- NOI2005瑰丽的华尔兹
- if语句的应用
- Mac迁移证书
- fedora 安装五笔
- 多个地方同时向一个文件读写的互斥问题解决方案
- 博文 2011-02-22
- ArcEngine的插值分析
- MyEclipse8.6安装svn(非link方式)
- 弹出页面进行文件下载,如何在文件下载完毕后,将该弹出的页面关闭掉的解决方案
- java改变控制台输入与输出
- 三点三十三
- CRecordset::GetRecordCount()
- C# .Net 学习积累 《一》