资讯详情

【多线程学习01】继承Thread类和实现Runnable接口

编制的程序运行是一个过程,一个过程可以包含多个线程(单核CPU宏观并行,微观串行)。

调用start(()实现多线程(继承)Thread类)

package thread;  //创建线程方式一:继承Thread类,重写run()方法,调用start()打开线程。 ///线程打开后不必立即执行,由CPU调度执行  public class TestThread01 extends Thread {     @Override     public void run() {  //run方法线程体         for (int i = 0; i < 10; i  ) {             System.out.println("run进程"   i);         }     }      public static void main(String[] args) { //main线程,主线程         TestThread01 testThread01 = new TestThread01();         testThread01.start();  ///子线程执行run()         //testThread01.run();  调用普通方法,主线程执行run()          for (int i = 0; i < 1000; i  ) {             System.out.println("main进程"   i);         }     } } 

下载commons.io jar包实现多线程下载网络图片。Thread类)

package thread;  import org.apache.commons.io.FileUtils;  import java.io.File; import java.io.IOException; import java.net.URL;  public class TestThread02 extends Thread {      private String url;     private String name;      //有参结构     public TestThread02(String url, String name){         this.url = url;         this.name = name;     }      @Override     public void run() {         Download d = new Download();         d.download(url, name);         System.out.println("下载图片名为:"   name);     }      public static void main(String[] args) {         TestThread02 t1 = new TestThread02("https://i0.hdslb.com/bfs/album/af3d104fec1dbbd0d827b9303b7fa43a57a96269.jpg@518w.webp", "Yoimiya01.jpg");         TestThread02 t2 = new TestThread02("https://i0.hdslb.com/bfs/album/8b8784a26770bee9d3db0a05dba39eb628f5c253.jpg@518w.webp", "Yoimiya02.jpg");         TestThread02 t3 = new TestThread02("https://i0.hdslb.com/bfs/album/b361130f2e9e22c70de450295dadaf25654cf012.jpg@518w.webp", "yunjin.jpg");          t1.start();         t2.start();         t3.start();     } }  class Download {     public void download(String url, String name){         try {             FileUtils.copyURLToFile(new URL(url), new File(name));         } catch (IOException e) {             e.printStackTrace();             System.out.println("IO异常,download方法有问题");         }     } } 

使用多线程下载网络图片。Runnable接口)

package thread;  import org.apache.commons.io.FileUtils;  import java.io.File; import java.io.IOException; import java.net.URL;   ///创建线程模式2:实现Runnable接口,重写run()方法,执行线程需要输入Runnable接口实现类,调用start()方法。 public class TestThread03 implements Runnable {      private String url;     private String name;      public TestThread03(String url, String name){         this.url = url;         this.name = name;     }      @Override     public void run() {         Download01 d = new Download01();         d.download(url, name);         System.out.println("下载图片名为:"   name);     }      public static void main(String[] args) {         //创建Runnable接口类实现对象         TestThread03 tt1 = new TestThread03("https://i0.hdslb.com/bfs/album/701b99929ee3c4dec758b7191d3894b257238190.jpg@518w.webp", "Yoimiya03.jpg");         TestThread03 tt2 = new TestThread03("https://i0.hdslb.com/bfs/article/311a9d65f3f58baac2706ce5edc839127b089f2e.jpg@942w_1290h_progressive.webp", "Yoimiya04.jpg");         TestThread03 tt3 = new TestThread03("https://i0.hdslb.com/bfs/album/bfa49f3297f6dbff8b9038d72baf78421d44c90c.jpg@518w.webp", "Yoimiya05.jpg");          //创建线程对象,线程通过线程对象打开         new Thread(tt1).start();         new Thread(tt2).start();         new Thread(tt3).start();     } }  class Download01 {     public void download(String url, String name){         try {             FileUtils.copyURLToFile(new URL(url), new File(name));         } catch (IOException e) {             e.printStackTrace();             System.out.println("IO异常,download方法有问题");         }     } } 

标签: t311a系列压力变送器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台