• Java线程的两种实现形式


    一、创建线程的第一种方式:继承Thread类

    class Demo extends Thread{
        @Override
        public void run() {
            super.run();
            for(int i=0;i<20;i++)
                System.out.println(Thread.currentThread()+"...."+i);
        }
    }
    
    public class ThreadDemo1 {
        public static void main(String[] args){
            Demo d1 = new Demo();
            Demo d2 = new Demo();
            d1.start();
            d2.start();
        }
    }

    二、创建线程的第二种方式:实现Runnable接口

    class Demo2 implements Runnable{
        public void run() {
            for(int i=0;i<20;i++)
                System.out.println(Thread.currentThread()+"..."+i);
        }
    }
    
    public class ThreadDemo2 {
        public static void main(String[] args) {
            Thread t1 = new Thread(new Demo2());
            Thread t2 = new Thread(new Demo2());
            t1.start();
            t2.start();
            
        }
    }

    Runnable的出现仅仅是将线程的任务进行了对象的封装。

    实现Runnable接口的好处:

    1、将线程的任务从线程的子类中分离出来,进行单独的封装。按照面向对象的思想将任务封装成对象。

    2、避免了Java单继承的局限性

    所以第二种方法创建线程比较常用。

  • 相关阅读:
    Array.sort源码
    单例模式
    nio理解
    xoa中范型的应用
    mybatis 一对多映射 xml
    zookeeper
    java final
    spring controller里面返回JSONObject与返回String的不同
    synchronized的可重入性
    nio select poll epoll
  • 原文地址:https://www.cnblogs.com/whc-uestc/p/4347155.html
Copyright © 2020-2023  润新知