JSCH会大量使用服务器内存吗?会

佐手、 提交于 2019-12-10 03:13:46

java实现一个需求用到了jsch,发现服务器内存会被占满。 写了个50进程的jsch-sftp测试连接 put一个文件

ExecutorService fixedThreadPool = Executors.newFixedThreadPool(50);
for (int j = 0; j < 50; j++) {
	fixedThreadPool.execute(new Thread("Thread1") {
		[@Override](https://my.oschina.net/u/1162528)
		public void run() {
			while (true){
				System.out.println(Thread.currentThread().getName());
				dosftptest();
				try {
					Thread.sleep(10*1000);
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
			}
		}
	});
}

          total        used        free      shared  buff/cache   available

Mem: 1839 137 828 0 873 1523 Swap: 0 0 0

          total        used        free      shared  buff/cache   available

Mem: 1839 748 123 9 966 829 Swap: 0 0 0

          total        used        free      shared  buff/cache   available

Mem: 1839 1052 79 14 707 495 Swap: 0 0 0

启动后内存一直下降,最后稳定到70-80之间差不多。 关闭java程序后,内存恢复。 total used free shared buff/cache available Mem: 1839 106 1214 0 518 1565 Swap: 0 0 0

所以java通过jsch sftp,是会占用服务器内存的,所以连接使用后必须进行关闭!

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!