
java 多线程操作文件
我写了一个多线程,每个线程都会对文件进行修改,但是要修改的文件是同一个,如果好几个线程要同时对这个文件进行增加字符或者删除字符操作,我觉得可能会出现文件无法访问的情况,是...
我写了一个多线程,每个线程都会对文件进行修改,但是要修改的文件是同一个,如果好几个线程要同时对这个文件进行增加字符或者删除字符操作,我觉得可能会出现文件无法访问的情况,是么?
如果是,我的想法是增加一个线程锁,当一个线程执行到修改文件那一步是,其他线程等待该线程处理完毕后在对这个文件进行操作,可行么?
具体应该怎么实现,需要调用什么方法,在什么地方调用
不好意思,没有分了,大伙帮我研究下
感谢大家的解答,现在就决定用synchronized修饰方法了
还有就是多线程同时读取文件内容也需要进行同步么,只是读取,不进行修改操作 展开
如果是,我的想法是增加一个线程锁,当一个线程执行到修改文件那一步是,其他线程等待该线程处理完毕后在对这个文件进行操作,可行么?
具体应该怎么实现,需要调用什么方法,在什么地方调用
不好意思,没有分了,大伙帮我研究下
感谢大家的解答,现在就决定用synchronized修饰方法了
还有就是多线程同时读取文件内容也需要进行同步么,只是读取,不进行修改操作 展开
展开全部
多个线程同时操作一个文档一定要加synchronized进行同步,不然会有线程安全问题的,加synchronized同步后 其他线程才会等待该线程处理完毕后在对这个文件进行操作。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
synchronized是用于锁定一个方法或者一段处理只能由一个线程进入。
你可以在写文件的处理部分加上这个控制。
只读取文件的需求用不着多线程吧,你一次读入内存,其他线程直接在内存中处理可以了
你可以在写文件的处理部分加上这个控制。
只读取文件的需求用不着多线程吧,你一次读入内存,其他线程直接在内存中处理可以了
更多追问追答
追问
socket多线程服务端,每次读取的内容都不一样的
需要进行同步么
追答
那么你就用一个监听线程负责定时更新,读取文件,然后发现有更新就通知其他线程进行处理。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
临界区代码段,我虽然不用java,但他是应该有的,你去查查,用途就是干这个的。。。。在执行某段程序时所有线程必须先进入临界区,但只有一个线程能进入成功,就是第一个进入的,把会出现线程安全问题的代码放到临界区执行即可。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-01-23
展开全部
应该可行,用synchronized,在读写文件的地方
追问
多线程 读 文件应该是没有影响的吧,synchronized用作方法的修饰么
追答
文件如果正在使用中其他线程是打不开的。可以修饰方法,也可以修饰代码块。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
同时不需要锁
多线程写需要锁,可以考虑使用synchronized或FileLock
多线程写需要锁,可以考虑使用synchronized或FileLock
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |