public class FileDownloader implements Runnable
{
private static File file//要下载的文件
private static String url//文件所在URL
private static File storagePath//保存路径
public static void initialize(File file, String url, File storagePath)//初始化静态字段,初始化的代码不用我写吧
}
然后,指明同步块,目的是让各个线程共享一个文件资源,那样它们可以知道同一个文件的下载状况(即获取其他线程下载文件到哪个位置,以防重复下载)
public synchronized void fileDownload()//此方法用于下载文件,一般的Java程序员都会写,实在不会我可以帮你补上
或者
public void fileDownload(){
synchronized(file){
synchronized(url){
synchronized(storagePath){
}}}}//给每个字段加上同步块
run()方法的实现就以自己的喜好去写吧,只要里面调用了fileDownload()方法就行。
public void run(){
…
fileDownload()//下载文件
…
}
然后,在主类的main方法中创建一个多线程数组:
Runnable[] fds=new FileDownloader[线程数量]//fds为file_downloaders缩写
Thread[] threads=new Thread[线程数量]
最后使用循环把所有的线程逐一启动。
for(int i=0i<线程数量i++){
threads[i]=new Thread(fds[i])
threads[i].start()
}