sftp多线程下载
//上传文件测试 public static void main(String[] args) throws SftpException, IOException { ExecutorService exec = Executors.newFixedThreadPool(10); for (int i = 0; i <10 ; i++) { exec.execute(new Runnable() { public void run() { try { JSch jsch = new JSch(); Session session = jsch.getSession("root", "192.168.60.128", 22); session.setPassword("lxz499929793"); Properties config = new Properties(); config.put("StrictHostKeyChecking", "no"); session.setConfig(config); session.connect(); Channel channel = session.openChannel("sftp"); channel.connect(); ChannelSftp sftp = (ChannelSftp) channel; sftp.cd("/root/pic"); atomicInteger.incrementAndGet(); sftp.get( "banner4.jpg", "D:\\aaadown\\xxxxx"+atomicInteger+".jpg"); sftp.disconnect(); session.disconnect(); } catch (JSchException e) { e.printStackTrace(); } catch (SftpException e) { e.printStackTrace(); } } }); } while (true){ if(atomicInteger.get()==10){ exec.shutdown(); System.out.println("下载好了"); break; } try { Thread.sleep(500); } catch (InterruptedException e) { e.printStackTrace(); } } }
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
【推荐】AI 的力量,开发者的翅膀:欢迎使用 AI 原生开发工具 TRAE
【推荐】2025 HarmonyOS 鸿蒙创新赛正式启动,百万大奖等你挑战
· 深入理解 C# 异步编程:同步、Task.Wait () 与 await 的本质区别
· WPF 引用 ASP.NET Core 的 AOT 版本
· 通过 Canvas 将后端发来的一帧帧图片渲染成“视频”的实现过程
· 当加密ID需要变成Guid:为什么我选择了AES-CBC而非GCM?
· 基于 epoll 的协程调度器——零基础深入浅出 C++20 协程
· .NET周刊【8月第1期 2025-08-03】
· Manus快速搭建个人网站
· 这套 Java 监控系统太香了!我连夜给项目加上了
· 【译】GPT-5 现已在 Visual Studio 中可用
· 千亿消息“过眼云烟”?Kafka把硬盘当内存用的性能魔法,全靠这一手!