java 基础学习:多线程04


java 基础学习:多线程04

  • 创建线程方式1:

    • 基类继承Thread类;

    • 重写run()方法,定义线程体;

    • 主类中:创建线程对象;

    • 调用start()方法,启动线程;(线程启动并不会立即执行,由CPU调度)

 

  • 案例:多线程下载图片:

    ?
    /**
    * 练习thread,实现多线程同步下载图片
    */
    public class TestThread02  extends  Thread{
    ?
       private String url;//图片地址
       private String name;//报错的文件名
    ?
       public TestThread02(String url,String name ){
           this.name=name;
           this.url=url;
      }
    ?
       //重写run方法,线程的执行体
       @Override
       public void run() {
           webDownLoader webDownLoader=new webDownLoader();
           webDownLoader.downLoader(url,name);
           System.out.println("下载了文件名为"+name);
      }
    ?
       public static void main(String[] args) {
           TestThread02 t1=new TestThread02("https://img2022.cnblogs.com/blog/805318/202203/805318-20220311184026195-1803031373.png", "FirstImg1.png");
           TestThread02 t2=new TestThread02("https://img2022.cnblogs.com/blog/805318/202203/805318-20220311184026195-1803031373.png", "FirstImg2.png");
           TestThread02 t3=new TestThread02("https://img2022.cnblogs.com/blog/805318/202203/805318-20220311184026195-1803031373.png", "FirstImg3.png");
           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出现问题");
          }
      }
    }