Servlet中多线程操作文件后无法关闭?解决思路
Servlet中多线程操作文件后无法关闭?
Java Web项目中的一部分:一个Servlet接受远程客户端的请求,同时下载多个url对应的文件到服务器本地(注意文件是下载到服务器,而不是远端的客户。这些文件是集中到一处用来后期处理,但每天都有新的url下载,这些url由远端的不同客户来指定)。Servlet中,利用线程池管理多线程,实现多个url的同时下载、文件读写操作,文件的打开、关闭等操作都是在Servlet的doGet()中实现。问题如下:
Servlet执行完成后,这些文件均不可进行"重命名"、“删除”等写操作。但是发现:
1.关闭Tomcat后即可对这些文件进行写操作;
2.不用Servlet,直接摘取Servlet中的多线程部分代码运行,下载的文件可以进行写操作。
***************************************************************************************************
请问:这可能是什么原因导致的?
------解决思路----------------------
Servlet执行完成后,这些文件均不可进行"重命名"、“删除”等写操作
是否没有关闭这些文件的连接管道呢?
Java Web项目中的一部分:一个Servlet接受远程客户端的请求,同时下载多个url对应的文件到服务器本地(注意文件是下载到服务器,而不是远端的客户。这些文件是集中到一处用来后期处理,但每天都有新的url下载,这些url由远端的不同客户来指定)。Servlet中,利用线程池管理多线程,实现多个url的同时下载、文件读写操作,文件的打开、关闭等操作都是在Servlet的doGet()中实现。问题如下:
Servlet执行完成后,这些文件均不可进行"重命名"、“删除”等写操作。但是发现:
1.关闭Tomcat后即可对这些文件进行写操作;
2.不用Servlet,直接摘取Servlet中的多线程部分代码运行,下载的文件可以进行写操作。
***************************************************************************************************
请问:这可能是什么原因导致的?
------解决思路----------------------
Servlet执行完成后,这些文件均不可进行"重命名"、“删除”等写操作
是否没有关闭这些文件的连接管道呢?