package ftp; import org.apache.commons.net.ftp.FTPClient; import java.util.ArrayList; import java.util.List; import java.util.Queue; import java.util.concurrent.*; public class TaskList { ExecutorService es_upload = Executors.newFixedThreadPool(20); ExecutorService es_download = Executors.newFixedThreadPool(20); ThreadPoolExecutor pool_upload=(ThreadPoolExecutor)es_upload; ThreadPoolExecutor pool_download=(ThreadPoolExecutor)es_download; public void newDownload(String name, FTPClient ftpClient, String filename, String absoluteLocalDirectory)//提交一个下载任务 { es_download.submit(new Download("Downloading:"+filename,ftpClient,filename,absoluteLocalDirectory)); } public void newUpload(FTPClient ftpClient, String filepath)//提交一个上传任务 { es_upload.submit(new Upload("Uploading:"+filepath,ftpClient,filepath)); } public void shutDownAlltask()//关闭所有下载与上传任务 { es_upload.shutdownNow(); es_download.shutdownNow(); } public List TaskView()//返回一个包含当前所有任务名字的字符串列表,用以刷新,前半部分为上传任务,后半部分为 { Queue queue; queue=pool_upload.getQueue(); List list=new ArrayList<>(); while(!queue.isEmpty()) { Upload r=(Upload) queue.poll(); list.add(r.name); } queue=pool_download.getQueue(); while(!queue.isEmpty()) { Download r=(Download) queue.poll(); list.add(r.name); } } }