五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

使用Callable實(shí)現(xiàn)多線程的代碼

2020-04-07 10:00 作者:小垃圾kiki  | 我要投稿
package cn.jd.thread;

import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;

import org.apache.commons.io.FileUtils;

/*
?* 下載圖片
?*/
public class WebDownloader {
?? ?
?? ?//下載的工具
?? ?public void download(String url,String name) {
?? ??? ?try {
?? ??? ??? ?FileUtils.copyURLToFile(new URL(url), new File(name));
?? ??? ?} catch (MalformedURLException e) {
?? ??? ??? ?e.printStackTrace();
?? ??? ??? ?System.out.println("不合法的url");
?? ??? ?} catch (IOException e) {
?? ??? ??? ?e.printStackTrace();
?? ??? ??? ?System.out.println("圖片下載失敗了");
?? ??? ?}
?? ?}

}

package cn.jd.thread;

import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;

public class CDownloader implements Callable<Boolean> {
?? ?private String url;// 遠(yuǎn)程路徑
?? ?private String name;// 存儲(chǔ)名字

?? ?public CDownloader(String url, String name) {
?? ??? ?this.url = url;
?? ??? ?this.name = name;
?? ?}

?? ?@Override
?? ?public Boolean call() throws Exception {
?? ??? ?WebDownloader wd = new WebDownloader();
?? ??? ?wd.download(url, name);
?? ??? ?System.out.println(name);
?? ??? ?return true;
?? ?}

?? ?public static void main(String[] args) throws InterruptedException, ExecutionException {
?? ??? ?CDownloader cd1 = new CDownloader("http://www.technosamrat.com/wp-content/uploads/2012/02/Ocean-Wallpapers-Images1.jpg", "1.jpg");
?? ??? ?CDownloader cd2 = new CDownloader("http://pics.sc.chinaz.com/files/pic/pic9/201509/apic14546.jpg", "2.jpg");
?? ??? ?CDownloader cd3 = new CDownloader("https://pic1.zhimg.com/v2-3b4fc7e3a1195a081d0259246c38debc_1200x500.jpg","3.jpg");
?? ??? ?//創(chuàng)建執(zhí)行任務(wù)
?? ??? ?ExecutorService ser=Executors.newFixedThreadPool(3);
?? ??? ?//把任務(wù)提交執(zhí)行
?? ??? ?Future<Boolean> result1=ser.submit(cd1);
?? ??? ?Future<Boolean> result2=ser.submit(cd2);
?? ??? ?Future<Boolean> result3=ser.submit(cd3);
?? ??? ?//獲取結(jié)果
?? ??? ?boolean r1=result1.get();
?? ??? ?boolean r2=result2.get();
?? ??? ?boolean r3=result3.get();
?? ??? ?//關(guān)閉服務(wù)
?? ??? ?ser.shutdownNow();
?? ??? ?
?? ?}

}

使用Callable實(shí)現(xiàn)多線程的代碼的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
鄂尔多斯市| 阿图什市| 枞阳县| 晋中市| 石家庄市| 竹北市| 墨脱县| 鲁甸县| 六盘水市| 齐河县| 天柱县| 治县。| 招远市| 桐乡市| 呼图壁县| 邳州市| 延吉市| 阳谷县| 康平县| 太白县| 新安县| 固镇县| 辽宁省| 分宜县| 东阳市| 朝阳市| 蓬安县| 定兴县| 安仁县| 北辰区| 鲁山县| 镇平县| 于田县| 溧阳市| 清涧县| 二连浩特市| 丹江口市| 虞城县| 长阳| 东乌珠穆沁旗| 明溪县|