zoukankan      html  css  js  c++  java
  • java学习之路--多线程实现的方法

    1 继承Thread类

    继承Thread类的方法尽管被我列为一种多线程实现方式,但Thread本质上也是实现了Runnable接口的一个实例,它代表一个线程的实例,并且,启动线程的唯一方法就是通过Thread类的start()实例方法。start()方法是一个native方法,它将启动一个新线程,并执行run()方法。这种方式实现多线程很简单,通过自己的类直接extend Thread,并复写run()方法,就可以启动新线程并执行自己定义的run()方法。

     1 public class MyThread extends Thread {  
     2   public void run() {  
     3    System.out.println("MyThread.run()");  
     4   }  
     5 } 
     //启动线程
     7 MyThread myThread1 = new MyThread();  
     8 MyThread myThread2 = new MyThread();  
     9 myThread1.start();  
    10 myThread2.start();  

    2 实现Runnable接口

    如果一个类继承另一个类,就无法继承Thread类(java中不支持多继承),这样就要实现Runnable接口,在实现类中重写run()方法,在main方法中实现多线程:实例化一个实现类对象,并初始化Thread类的对象,把实现类传入到Thread的对象里。事实上,当传入一个Runnable target参数给Thread后,Thread的run()方法就会调用target.run()。

    //实现Runnable接口
    public class MyThread extends OtherClass implements Runnable {  
      public void run() {  
       System.out.println("MyThread.run()");  
      }  
    }  
    //复写run()方法
    public void run() {  
      if (target != null) {  
       target.run();  
      }  
    } 
    //实例化对象
    MyThread myThread = new MyThread();  
    Thread thread = new Thread(myThread);  
    thread.start(); 

    3 使用ExecutorService、Callable、Future实现有返回结果的多线程

    该部分内容还未学到占时不作记录,以后补充

  • 相关阅读:
    安装chrome driver(14)
    爬虫-selenium实现验证码自动登录(14)
    爬虫-反爬与反反爬(12)
    爬虫-模拟登录(13)
    爬虫-GIL与线程同步问题(11)
    爬虫-多进程(10)
    爬取csdn的数据与解析存储(9)
    Exchange Server 2016邮件系统建设方案
    Exchange 2016高可用及容灾架构选型参考
    Installing Exchange 2016 on Windows Server 2016 Step by Step
  • 原文地址:https://www.cnblogs.com/mlgm/p/6568256.html
Copyright © 2011-2022 走看看