1. 程式人生 > >java ftp支援 多執行緒與否總結

java 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將FTPClient靜態或者不共用

ftp不支援併發案例
ftp支援併發案例
參照地址