A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 381946250 中级黑马   /  2013-5-29 15:45  /  1600 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 381946250 于 2013-5-30 15:31 编辑

既然D.run 仅仅是对象调用方法,线程创建了,并没有运行,但当我在run() 方法里获取当前线程的名称,线程的名称却是“run线程” , 此处有一点不解。
另外继承放在上述两个地方是否有区别,运行结果是一样的,是不是只在多线程中是这种情况。

2130162t2h62ghw3mpeere.jpg (56.41 KB, 下载次数: 0)

2130162t2h62ghw3mpeere.jpg

2130226dulxfluu5lgdxcn.jpg (21.57 KB, 下载次数: 0)

2130226dulxfluu5lgdxcn.jpg

评分

参与人数 1技术分 +1 收起 理由
曹睿翔 + 1 给别人个得分的机会!

查看全部评分

4 个回复

倒序浏览
第一点:“但当我在run() 方法里获取当前线程的名称,线程的名称却是“run线程””,我感觉着仅仅是对象调用方法然后普通的打印,并不是线程。
第二点:肯定有区别,谁继承Thread类就是具有了多线程的特征。
以上仅个人观点,围观大神级回答。

评分

参与人数 2技术分 +1 黑马币 +1 收起 理由
袁梦希 + 1 很给力!
381946250 + 1 赞一个!

查看全部评分

回复 使用道具 举报
1.“但当我在run() 方法里获取当前线程的名称,线程的名称却是“run线程””这个就是方法的调用,因为你输出的是run线程,并没有获取到线程的名称,要获取线程的名称,用这个方法:Thread.currentThread().getName() 。
2.谁实现了多线程,就要覆写run方法。也就具备了多线程的特征。

评分

参与人数 2技术分 +1 黑马币 +1 收起 理由
袁梦希 + 1 很给力!
381946250 + 1 很给力!

查看全部评分

回复 使用道具 举报
最近刚刚把视频看完,把以前的知识进行整理串联,发现不少问题,所以提问比较多点!谢谢大家的回复,每个回复我都认真思考呢,谢谢大家!
回复 使用道具 举报
你好!我也是正在学习希望冲进云4的学员。
对于你这个问题是这样的:1.你在main方法中创建里一个线程对象D,而你用D。run()调用线程代码块是不对的,应该是D.start()。
                                    2.你说当你在在run() 方法里获取当前线程的名称,线程的名称却是“run线程”,其实那不是你的线程名,而是打印的一个字符串。而获得线程名的方法时Thread.currentThread().getName()。
                                   3.另外继承放在上述两个地方是有区别的,放在Demo类后面,说明Demo的对象是一个线程,而你放在ThreadDemo类的后面只能说明ThreadDemo的对象是一个线程,Demo的对象就不是线程了,所以不能用Demo的对象D这样调用D.start()方法。

评分

参与人数 1黑马币 +1 收起 理由
381946250 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马