zoukankan      html  css  js  c++  java
  • java.lang.Runnable接口

    大家都知道使用线程的2种方式,一是继承Thread类,二是实现Runnable接口。
    实际上,即使你实现了Runnable接口,终于还是要构造一个Thread类的对象。
    看过Thread源码发现,事实上这个Thread类也实现了Runnable接口,而这个Thread类的run()方法实现是
        if (target != null) {
            target.run();
        }
    而这个target则是Thread类的构造器都要调用的init()方法所指定的Runnable接口实现类。
    Thread类的几个构造器Thread()、Thread(Runnable target)、Thread(ThreadGroup group, Runnable target)、Thread(String name)、Thread(ThreadGroup group, String name)、Thread(Runnable target, String name)、Thread(ThreadGroup group, Runnable target, String name)、Thread(ThreadGroup group, Runnable target, String name, long stackSize)都调用了private void init(ThreadGroup g, Runnable target, String name, long stackSize)。
    所以假设你实现了Runnable接口并用这个接口实现类构造了一个Thread对象,那么run()方法运行的将是这个target  Runnable接口实现类的run()方法,否则,假设直接继承自Thread类,那么这个target为null,所以你仅仅能覆盖掉Thread类的run()方法。
  • 相关阅读:
    34.初识搜索引擎及timeout机制
    33.bulk json格式的理解
    32.es读请示内部分发原理
    31.分片和复制带来的副本一致性
    30.es增删改内部分发原理
    29.es路由原理
    27.初识分布式文档存储系统慨念
    26.bulk批量操作
    26.mget批量查询
    25.partial update内置乐观锁并发控制
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4513025.html
Copyright © 2011-2022 走看看