关于文件读写锁定 工程中有A,B两个线程,其中A线程负责从客户端接受文件放入到指定目录中,而B线程负责从目录获取文件解析文件。问题:当线程B 在目录获取文件时,如何判断文件已经被A线程接收完毕或者A线程接受过程中 B线程不能操作文件(如何对B线程处理,A线程最好不要改动) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 当线程B在读取文件时不能让A线程操作这个文件,对于这个情况是可以对操作加入同步。但是这样还是不能解决问题(比如对于线程B可以重复读取文件内容或线程A重复写文件内容的情况)。所以还必须加入等待与唤醒。可以增加一个标志位,比如标志位为boolean型变量,如果标志位的内容为true,则表示线程A可以向目录文件写内容,但是不能读取,此时执行到线程B则应该等待;线程A写完了内容后修改标志位通知线程B来取文件。(反之一样)。 建议用最简单的方式,把B做成线程池就行了。A将文件写入指定目录后,就增加一条任务进线程池(也就是B),然后B就会傻傻的根据该任务去解析目标文件。这样你可以很灵活的控制A的数量(中间件的服务线程数)和B的数量(线程池规模),又绕开了复杂的同步问题。 可以A打开文件时给文件上锁。关于java文件锁,请参考下面链接。 我觉得方式二好。http://blog.sina.com.cn/s/blog_46e73e77010001cj.html swing的2个问题问题,求指教! 编译过程中出现莫名其妙的问题 怎么样去解析一个Jar文件 java布局,让控件从上到下显示的问题 BufferedStream读取问题 转型的小问题 有关IO 报NULLPOINTERException 请问谁有J2ME的模拟器的下载地址。 如何让Ant打包时把图片和一些设定文件打到Jar包中去? 请帮忙?谢谢 如何定义混合类型的集合 SVN与JAVA程序集成,请大侠们帮忙给点思路,最好详细点。
关于java文件锁,请参考下面链接。 我觉得方式二好。
http://blog.sina.com.cn/s/blog_46e73e77010001cj.html