zoukankan      html  css  js  c++  java
  • 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单继承的局限性

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

  • 相关阅读:
    java fastJson
    动态 商品属性
    添加营业时间
    ivew 表格中的input数据改变就会失去焦点
    小程序-setData
    小程序 css3走马灯效果
    iview 表单验证
    vue iview tree checked改变 不渲染的问题
    pl/sql中文乱码
    sql-plus无法连接解决
  • 原文地址:https://www.cnblogs.com/whc-uestc/p/4347155.html
Copyright © 2011-2022 走看看