package com.cl.demo01; //创建线程方式一;继承Thread类,重写run()方法,调用start开启线程 public class TestThread1 extends Thread{ @Override public void run() { //run方法线程体 for (int i = 0; i <100; i++) { System.out.println("run方法--"+i); } } public static void main(String[] args) { //main线程,主线程 TestThread1 thread1 = new TestThread1(); thread1.start(); for (int i = 0; i <100; i++) { System.out.println("多线程--"+i); } } } /* 总结:注意,线程开启不一定立即执行,由cpu调度执行 * */
注意,在实现前,需去官网下载“commons io.jar”这个jar包,因为要利用里面的工具去实现; package com.cl.demo01; import org.apache.commons.io.FileUtils; import java.io.File; import java.io.IOException; import java.net.URL; public class TestThread2 extends Thread { private String url;//网络图片地址 private String name;//保存的文件名 public TestThread2(String url,String name){ this.url=url; this.name=name; } @Override public void run() { WebDownloader webDownloader = new WebDownloader(); webDownloader.downloader(url,name); System.out.println("下载文件名:"+name); } public static void main(String[] args) { TestThread2 t1 = new TestThread2("https://pic.cnblogs.com/avatar/2053539/20200904094641.png","th1"); TestThread2 t2 = new TestThread2("https://pic.cnblogs.com/face/1959021/20200303171942.png","th2"); TestThread2 t3 = new TestThread2("https://pic.cnblogs.com/face/2124548/20200820122225.png","th3"); t1.start(); t2.start(); t3.start(); } } //下载器 class WebDownloader{ //下载方法 public void downloader(String url,String name){ try { FileUtils.copyURLToFile(new URL(url),new File(name)); } catch (IOException e) { e.printStackTrace(); System.out.println("IO 异常,downloader方法出现问题"); } } }
成功截图:注,为什么不是安123顺序下载的?
答,因为这个是模拟的多线程方法实现的
原文:https://www.cnblogs.com/CL-King/p/13660365.html