java 多线程操作文件

我写了一个多线程,每个线程都会对文件进行修改,但是要修改的文件是同一个,如果好几个线程要同时对这个文件进行增加字符或者删除字符操作,我觉得可能会出现文件无法访问的情况,是... 我写了一个多线程,每个线程都会对文件进行修改,但是要修改的文件是同一个,如果好几个线程要同时对这个文件进行增加字符或者删除字符操作,我觉得可能会出现文件无法访问的情况,是么?
如果是,我的想法是增加一个线程锁,当一个线程执行到修改文件那一步是,其他线程等待该线程处理完毕后在对这个文件进行操作,可行么?
具体应该怎么实现,需要调用什么方法,在什么地方调用

不好意思,没有分了,大伙帮我研究下
感谢大家的解答,现在就决定用synchronized修饰方法了

还有就是多线程同时读取文件内容也需要进行同步么,只是读取,不进行修改操作
展开
 我来答
yzyaiweier
2014-01-23 · TA获得超过347个赞
知道小有建树答主
回答量:185
采纳率:100%
帮助的人:97.7万
展开全部
多个线程同时操作一个文档一定要加synchronized进行同步,不然会有线程安全问题的,加synchronized同步后 其他线程才会等待该线程处理完毕后在对这个文件进行操作。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lkiarest
推荐于2016-07-11 · TA获得超过543个赞
知道小有建树答主
回答量:761
采纳率:100%
帮助的人:422万
展开全部
synchronized是用于锁定一个方法或者一段处理只能由一个线程进入。
你可以在写文件的处理部分加上这个控制。

只读取文件的需求用不着多线程吧,你一次读入内存,其他线程直接在内存中处理可以了
更多追问追答
追问
socket多线程服务端,每次读取的内容都不一样的

需要进行同步么
追答
那么你就用一个监听线程负责定时更新,读取文件,然后发现有更新就通知其他线程进行处理。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
TLast_Ghost
2014-01-23 · TA获得超过1542个赞
知道小有建树答主
回答量:649
采纳率:20%
帮助的人:526万
展开全部
临界区代码段,我虽然不用java,但他是应该有的,你去查查,用途就是干这个的。。。。在执行某段程序时所有线程必须先进入临界区,但只有一个线程能进入成功,就是第一个进入的,把会出现线程安全问题的代码放到临界区执行即可。。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-01-23
展开全部
应该可行,用synchronized,在读写文件的地方
追问
多线程 读 文件应该是没有影响的吧,synchronized用作方法的修饰么
追答
文件如果正在使用中其他线程是打不开的。可以修饰方法,也可以修饰代码块。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小狂中E
2014-01-23 · TA获得超过1418个赞
知道大有可为答主
回答量:1514
采纳率:66%
帮助的人:1057万
展开全部
同时不需要锁
多线程写需要锁,可以考虑使用synchronized或FileLock
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式