zoukankan      html  css  js  c++  java
  • 某类继承thread,同时实现runnable

    1. package com.giserve.test;  
    2.   
    3. public class ThreadTest {  
    4.     public static void main(String[] args) {  
    5.         new Thread(new Runnable() {  
    6.               
    7.             @Override  
    8.             public void run() {  
    9.                 while(true){  
    10.                     try {  
    11.                         Thread.sleep(1000);  
    12.                         System.out.println("Thread1::"+Thread.currentThread().getName());  
    13.                     } catch (InterruptedException e) {  
    14.                         // TODO Auto-generated catch block  
    15.                         e.printStackTrace();  
    16.                     }  
    17.                 }  
    18.             }  
    19.         }){  
    20.             @Override  
    21.             public void run() {  
    22.                 while(true){  
    23.                     try {  
    24.                         Thread.sleep(1000);  
    25.                         System.out.println("Thread0::"+Thread.currentThread().getName());  
    26.                     } catch (InterruptedException e) {  
    27.                         // TODO Auto-generated catch block  
    28.                         e.printStackTrace();  
    29.                     }  
    30.                 }  
    31.             };  
    32.         }.start();  
    33.     }  
    34. }  

    结果是:

    Thread0::Thread-0
    Thread0::Thread-0
    Thread0::Thread-0
    Thread0::Thread-0
    Thread0::Thread-0
    Thread0::Thread-0
    Thread0::Thread-0
    Thread0::Thread-0
    Thread0::Thread-0
    Thread0::Thread-0
    Thread0::Thread-0
    Thread0::Thread-0
    Thread0::Thread-0
    Thread0::Thread-0
    Thread0::Thread-0
    Thread0::Thread-0
    Thread0::Thread-0

    在JDK源码中Thread线程中的run是这样实现的

    1. @Override  
    2. public void run() {  
    3.     if (target != null) {  
    4.         target.run();  
    5.     }  
    6. }  

    结论:
    target代表的是构造Thread时传入的Runable对象,疑问为什么会是Thread-0,原因是当子类覆盖父类后,上面的run方法的target就不存在了。所以执行的run方法就是Thread子类的。

  • 相关阅读:
    ALV实时刷新功能的实现
    sap中批量导入Excel表格中的数据
    从se11新建的表维护中,给维护的数据做限制处理,例如,只允许输入vp开头的数据
    abap之ranges使用
    Abap中LOOP循环时使用AT FIRST. 传数过程中出现一串 ******** ------解决办法
    Django项目-创建第一个页面
    Python3创建django项目
    Python3安装Pyyaml
    Appium命令行环境搭建及参数使用
    c# ABP 中开启新的事务
  • 原文地址:https://www.cnblogs.com/tiger-fu/p/8951940.html
Copyright © 2011-2022 走看看