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子类的。

  • 相关阅读:
    js常用函数(不断添加中。。。)
    【转】linux常用命令全集
    【转】VC++消息钩子编程
    beyond compare ftp 文件夹同步
    【转】notepad++ 应用学习 -- 列模式,十六进制模式
    网页嵌入视频播放器
    java中 正则表达式的使用
    【转】正则表达式30分钟入门教程
    【转】深入研究java.lang.Runtime类
    js 中map的几种实现方式
  • 原文地址:https://www.cnblogs.com/tiger-fu/p/8951940.html
Copyright © 2011-2022 走看看