java实现一个需求用到了jsch,发现服务器内存会被占满。 写了个50进程的jsch-sftp测试链接 put一个文件java
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 0ide
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.net
因此java经过jsch sftp,是会占用服务器内存的,因此链接使用后必须进行关闭!code