黑马程序员_QQ群讨论问题分析1
来源:互联网 发布:常用sql查询语句 编辑:程序博客网 时间:2024/04/28 00:08
---------------------- android培训、java培训、期待与您交流! ----------------------
今天在黑马群里看到同学问的问题很有意思,我就想把它记在日记里,以后有机会再看看……
程序:
new Thread(new Runnable() {
@Override
public void run() {
System.out.println("runnable");
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}) {
public void run() {
while (true) {
System.out.println("thread");
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
}.start();
简写:new Thread(new Runnable() {RUN1}) {RUN2;}.start();
RUN1和RUN2是两个public void run(){}
程序运行结果:RUN2执行,RUN1未执行
为什么呢?
我们从jdk源代码中查看Jdk-API\jdk源码\java\lang\Thread.java
找到相关代码
private Runnable target;
构造函数
public Thread(Runnable target) {
init(null, target, "Thread-" + nextThreadNum(), 0);
}
构造函数调用
private void init(ThreadGroup g, Runnable target, String name, long stackSize) {*******this.target=target;*******}
public void run() {
if (target != null) {
target.run();
}
}
总结:
//*******target就是new Runnable(){RUN1}实现了Runnable接口的实例对象
//*******new Thread(Runable实例){RUN2}——RUN2覆盖了new Thread(Runable实例)中的run方法,而这个run在Thread内部实质是调用Runnable接口实例对象的run方法
---------------------- android培训、java培训、期待与您交流! ----------------------
详细请查看:http://edu.csdn.net/heima
- 黑马程序员_QQ群讨论问题分析1
- 黑马程序员-java面向对象问题分析
- 第一次参加程序员问题讨论
- NET程序员讨论群
- 黑马程序员---内存分析
- 黑马程序员__用面向对象思想分析问题小结
- 黑马程序员_java经典问题总结1
- 黑马程序员:接口问题
- 黑马程序员:异常问题
- 黑马程序员_Trim()问题
- 黑马程序员 - 交通灯问题
- 讨论2:对于程序员学历是不是问题?
- 讨论2:对于程序员学历是不是问题?
- uml问题讨论群!!
- 黑马程序员------Objective-C-------#include,#import与@class的讨论
- 《黑马程序员》 TreeMap练习分析
- 黑马程序员-Java例题分析
- 黑马程序员-内存堆栈分析
- Spring的ApplicationListener 接口及事务管理
- 一道笔试题:统计文件中的单词出现次数
- oracle学习笔记四——角色管理
- 小布老师Oracle视频教程第二部分
- openssl实现md5加rsa签名
- 黑马程序员_QQ群讨论问题分析1
- 2011-09-01 奋力拼写,激情重燃。继续java io 操作(文件操作)
- [Office]使用 OpenXML SDK 建立 Word 文件檔
- iphone ios Quartz 2d简介,教程
- Linux下emacs如何如X-Window系统共享剪贴板
- 二叉排序树的C++实现代码
- 什么是Socket
- 顺序容器的定义
- 关于vs中运行时变量值的查看