记一次Ftp设置导致的,InputStream.read()阻塞问题。

在处理大量FTP文件时,遇到线程因InputStream.read()阻塞问题。经排查,发现SoTimeout和setDataTimeout设置过长,导致文件传输超时未响应。调整超时设置后,问题得到解决。
摘要由CSDN通过智能技术生成

在最近的项目开发中,用到了多线程读取ftp上的文件,处理数据量9万左右,但每次执行,都会有几个线程长时间阻塞。堆栈信息如下:

"taskExecutorTwo-119" #311 prio=5 os_prio=0 tid=0x00000000323e1000 nid=0x4064 runnable [0x0000000051f5f000]
   java.lang.Thread.State: RUNNABLE
    at java.net.SocketInputStream._jr$jni$socketRead0(Native Method)
    at java.net.SocketInputStream.socketRead0(SocketInputStream.java)
    at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
    at java.net.SocketInputStream.read(SocketInputStream.java:171)
    at java.net.SocketInputStream.read(SocketInputStream.java:141)
    at java.io.FilterInputStream.read(FilterInputStream.java:133)
    at com.google.common.io.ByteStreams.toByteArrayInternal(ByteStreams.java:180)
    at com.google.common.io.ByteStreams.toByteArray(ByteStreams.java:220)
    at net.risesoft.service.impl.DocInterfaceImpl.handl
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值