线程的2种使用方式:实现Runnable接口和继承Thread类

1.实现Runnable接口

实现Runnable接口,必须实现run方法,也是Runnable接口中的唯一一个方法

class Runner1 implements Runnable
{
    public void run()
    {
        for (int i = 0; i < 20; i++)
        {
            System.out.println("Runner1:"+i);
        }
    }
}
Runner1:0
Runner1:1
Runner1:2
Runner1:3
Runner1:4
Runner1:5

2.继承Thread类

看一下java的api文档,发现Thread类也是实现了Runnable接口,不过是在Thread类里面自己新加了一些自己的东西

class Thread1 extends Thread
{
    public void run(){
        for (int i = 0; i < 50; i++)
        {
            System.out.println("Thread1:"+i);
        }
    }
}

那么,到底使用哪一种方法好呢?

当然,我们在工作中都会用接口编程,面向接口,是一种很灵活的编程思想,所以最好能使用到Runnable接口,使得更加灵活方便。

最好,定义一个Runnable实现类,然后放到Thread的构造方法,这样我们可以使用很多Thread的自定义方法。

   public static void main(String[] args)
    {
        Runner1 r = new Runner1();
        Thread thread = new Thread(r);

        thread.start();

    }
}

class Runner1 implements Runnable
{
    public void run()
    {
        for (int i = 0; i < 20; i++)
        {
            System.out.println("Runner1:"+i);
        }
    }
}

线程入门之实现Runnable接口和继承Thread类的更多相关文章

  1. 【转载】JAVA中线程的两种实现方法-实现Runnable接口和继承Thread类

    转自: http://blog.csdn.net/sunguangran/article/details/6069317 非常感谢原作者,整理的这么详细. 在java中可有两种方式实现多线程,一种是继 ...

  2. 实现Runnable接口和继承Thread类区别

    如果一个类继承Thread,则不适合资源共享.但是如果实现了Runable接口的话,则很容易的实现资源共享. 实现Runnable接口比继承Thread类所具有的优势: 1):适合多个相同的程序代码的 ...

  3. 实现Runnable接口和继承Thread类之间的区别

    在Java语言中,我们都知道,有两种创建线程的方式,一中是使用Runnable接口,另一种是使用Thread类. public class DemoRunnable implements Runnab ...

  4. 实现Runnable接口和继承Thread类

    如果欲创建的线程类已经有一个父类了,就不能再继承Thread类了,java不支持多继承.  实现Runnable接口: package multyThread; public class MyRuna ...

  5. 线程创建的三种方法:继承Thread类,实现Runnable接口,实现Callable接口

    线程创建 三种创建方式 1. 继承Thread类 自定义线程类继承Thread类 重写run()方法,编写线程执行体 创建线程对象,调用start()方法启动线程 线程不一定执行,CPU按排调度 pa ...

  6. 线程实现Runnable接口比继承Thread的优势

    1.适合多个相同程序代码的线程去处理同一资源,把虚拟CPU(线程)同程序的代码.数据有效分离,较好地体现了面向对象的设计思想.2.可以避免由于java单继承特性带来的局限.3.增强了程序的健壮性,代码 ...

  7. Java线程演示样例 - 继承Thread类和实现Runnable接口

    进程(Process)和线程(Thread)是程序执行的两个基本单元. Java并发编程很多其它的是和线程相关. 进程 进程是一个独立的执行单元,可将其视为一个程序或应用.然而,一个程序内部同事还包括 ...

  8. Java中继承thread类与实现Runnable接口的区别

    Java中线程的创建有两种方式: 1.  通过继承Thread类,重写Thread的run()方法,将线程运行的逻辑放在其中 2.  通过实现Runnable接口,实例化Thread类 在实际应用中, ...

  9. Java通过继承thread类与实现Runnable接口实现多线程的区别

    Java中线程的创建有两种方式: 1.  通过继承Thread类,重写Thread的run()方法,将线程运行的逻辑放在其中 2.  通过实现Runnable接口,实例化Thread类 一.通过继承T ...

随机推荐

  1. Spring MVC 和 Spring 总结

    1. 为什么使用Spring ? 1). 方便解耦,简化开发 通过Spring提供的IoC容器,可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合. 2). AOP编程的 ...

  2. 为什么drop table的时候要在checking permissions花很长时间?

    昨天,我drop一个表的时候在checking permissions花了20s+,这个时间花在哪里了呢?经常查找发现我的配置文件innodb_file_per_table=1的,innodb需要遍历 ...

  3. oracle初次使用连接不上

    问题描述: win10下,cmd运行 输入sqlplus报一下错误 SP2-1503: 无法初始化 Oracle 调用界面 SP2-0152: ORACLE 不能正常工作 解决办法 cmd右键--以管 ...

  4. HDU 1498:50 years, 50 colors(二分图匹配)

    http://acm.hdu.edu.cn/showproblem.php?pid=1498 题意:给出一个 n*n 的矩阵,里面的数字代表一种颜色,每次能炸掉一排或者一列的相同颜色的气球,问有哪些颜 ...

  5. ecshop订单打印页显示商品缩略图和序号

    ecshop订单打印页显示商品缩略图和序号 订单打印页显示商品缩略图,在论坛没找到适合2.7.2相关的文章,特意贴上来给大家研究一下.1.找到 $sql = "SELECT o.*, IF( ...

  6. fragment相关

    1.鸿洋大神前两年写的,从最基础的开始详解.对常用的方法都做了精炼的总结,分上下两篇 http://blog.csdn.net/lmj623565791/article/details/3797096 ...

  7. ACM题目————士兵杀敌(三)

    [RMQ算法]:用于当数组过于庞大的时候,查询区间的最大(最小)值. 时间复杂度:O(nlogn),主要时间发费在预处理上,查询只要O(1). 描述 南将军统率着N个士兵,士兵分别编号为1~N,南将军 ...

  8. poj-3259-wormholes-spfa-判负环

    题意:N个顶点, M条双向边, W条权值为负的单向边.求是否存在负环. 思路:首先你要懂bellman-ford或spfa..这是基础的spfa判断是否存在负环的题,存在负环的节点会重复入队(因为最短 ...

  9. java.lang.VerifyError异常

    以前遇到过java.lang.VerifyError 原因是jar包冲突 tomcat6自带jsp.jar.servlet.jar所以项目中不用引入 tomcat5不带jsp.jar.servlet. ...

  10. Windows下Python,setuptools,pip,virtualenv的安装

    Windows 2003平台,安装Python2.7.4,Python3.3,setuptools,pip,virtualenv. 安装Python2.7.4(当前版本是2.7.6),安装路径:C:\ ...