diff --git a/src/ftp/Download.java b/src/ftp/Download.java index 5bf345a7940673d8c086900854420a4dfe6bb06f..118e82fb1338d540e9dcb175f1fe3d115fd73f62 100644 --- a/src/ftp/Download.java +++ b/src/ftp/Download.java @@ -12,7 +12,7 @@ import java.util.ArrayList; import java.util.List; public class Download implements Runnable{ - private final String name; + public final String name; private final FTPClient ftpClient; private final String absoluteLocalDirectory; private final String filename; diff --git a/src/ftp/TaskList.java b/src/ftp/TaskList.java index ca12f2a6fa501f43d7e72c18992758dfd57e0843..985574d2246b20e8e3f58fc291d06c9d67613a71 100644 --- a/src/ftp/TaskList.java +++ b/src/ftp/TaskList.java @@ -2,28 +2,44 @@ package ftp; import org.apache.commons.net.ftp.FTPClient; +import java.util.ArrayList; import java.util.List; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.ThreadPoolExecutor; +import java.util.Queue; +import java.util.concurrent.*; public class TaskList { - ThreadPoolExecutor pool; - ExecutorService es = Executors.newFixedThreadPool(100); + 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.submit(new Download("Downloading:"+filename,ftpClient,filename,absoluteLocalDirectory)); + es_download.submit(new Download("Downloading:"+filename,ftpClient,filename,absoluteLocalDirectory)); } public void newUpload(FTPClient ftpClient, String filepath)//提交一个上传任务 { - es.submit(new Upload("Uploading:"+filepath,ftpClient,filepath)); + es_upload.submit(new Upload("Uploading:"+filepath,ftpClient,filepath)); } - public void shutDownAlltask()//关闭所有任务 + public void shutDownAlltask()//关闭所有下载与上传任务 { - es.shutdownNow(); + es_upload.shutdownNow(); + es_download.shutdownNow(); } - public List TaskView()//返回一个包含当前所有任务名字的字符串列表,用以刷新 + public List TaskView()//返回一个包含当前所有任务名字的字符串列表,用以刷新,前半部分为上传任务,后半部分为 { - es. + 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); + } } } diff --git a/src/ftp/Upload.java b/src/ftp/Upload.java index be0601d61991469eddefe6f1e2e59a2682ff3cec..c763ff5d7d338f2c2099bf4b35354334e1558d60 100644 --- a/src/ftp/Upload.java +++ b/src/ftp/Upload.java @@ -8,7 +8,7 @@ import java.io.IOException; public class Upload implements Runnable//上传文件,上传文件夹,新建文件夹 { - private final String name; + public final String name; private final FTPClient ftpClient; private final String filepath; public Upload(String name,FTPClient ftpClient,String filepath) { diff --git a/src/ftp/test.java b/src/ftp/test.java new file mode 100644 index 0000000000000000000000000000000000000000..7218f5ab4a7612eb6b597fc3f2028fbd8bf2f53d --- /dev/null +++ b/src/ftp/test.java @@ -0,0 +1,4 @@ +package ftp; + +public class test { +}