多文件上传到FTP遇到的线程并发问题

问题发生的直观描述:在用户用Bootstarp Fileinput通过异步的方式上传多张图片文件至ftp时出现文件有的成功,有的失败。完全随机的。

debug结论:在FtpClient.storeFile()时报connect is not open 的IO异常有的还有connect closed when copying.

出现的原因:Fileinput会同时请求后端的upload接口,然而FtpUtil里面将FtpClient和上传的方法全都写成static了,可能是当时为了方便直接调方法 而不用new对象。这样又节约内存?这时就发生了并发情况下出现的一系列问题。

解决办法:1将上传文件的方法加synchronized。最简单的但肯定不好的

                2将static全部改成非静态的。

猜你喜欢

转载自blog.csdn.net/liwb94/article/details/80001318