java.net.SocketTimeoutException: Read timed out
发布时间:2025-05-20 09:05:27 发布人:远客网络
一、java.net.SocketTimeoutException: Read timed out
1、很明显,出现这种问题的原因是读取文件超时,解决方法是将HTTP Keep-Alive Timeout这个参数设置地尽量大,但是有没有更好的解决方法,由于使用的服务器是tomcat,便可以通过修改服务器配置来解决该问题,具体的解决方法如下:
2、修改tomcat配置文件server.xml,找到类似于下面配置:
3、<Connectorport="8086"maxHttpHeaderSize="8192"
4、maxThreads="150"minSpareThreads="25"maxSpareThreads="75"
5、enableLookups="false"redirectPort="8443"acceptCount="100"
6、connectionTimeout="20000"disableUploadTimeout="true"/>
将上面的参数disableUploadTimeout值改为false即可。
7、将上面的参数disableUploadTimeout值改为false即可。
二、setTimeout函数问题
1、首先,setTimeout是可以取消的,可以不让其永远不终止,方法如下:
2、//在另外一个函数中,在某种条件下,取消之前的定时器
3、clearTimeout(timer);
这样,timer就不再执行了,也就不会再次调用函数f,生成新的定时器。
4、这样,timer就不再执行了,也就不会再次调用函数f,生成新的定时器。
5、其次,关于内存,js类似于java有垃圾回收机制,一些不会再次用到的变量等,会被清理。只要是作用域不逃出函数f的,函数f执行完毕后,js总是有办法将其销毁,当然不一定百分百销毁。这样的话,内存怎么会越来越多呢?只有函数f在执行的时候会多一些,但随即又会被清理的。
6、最后,即便没有clearTimeout,在浏览器关闭的时候,一切都会消失的。
7、要提醒的是,如果函数f里在不停的创建对象,而且在函数f执行完毕后,这些对象又是被引用的,确实会有内存被越来越多的占用。
三、JS 用setTimeout 那本身的函数不就永远不会终止吗
1、首先,setTimeout是可以取消的,可以不让其永远不终止,方法如下:
2、//在另外一个函数中,在某种条件下,取消之前的定时器
3、clearTimeout(timer);
这样,timer就不再执行了,也就不会再次调用函数f,生成新的定时器。
4、这样,timer就不再执行了,也就不会再次调用函数f,生成新的定时器。
5、其次,关于内存,js类似于java有垃圾回收机制,一些不会再次用到的变量等,会被清理。只要是作用域不逃出函数f的,函数f执行完毕后,js总是有办法将其销毁,当然不一定百分百销毁。这样的话,内存怎么会越来越多呢?只有函数f在执行的时候会多一些,但随即又会被清理的。
6、最后,即便没有clearTimeout,在浏览器关闭的时候,一切都会消失的。
7、要提醒的是,如果函数f里在不停的创建对象,而且在函数f执行完毕后,这些对象又是被引用的,确实会有内存被越来越多的占用。