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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郭振 中级黑马   /  2012-5-6 14:41  /  2632 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我想问一下Thread.currentThread() 与this除了一个是静态的,表示当前对象,除了这个在应用上还有什么区别

2 个回复

倒序浏览
(1)currentThread()是Thread类的静态方法,该方法总是返回当前正在执行的线程对象的引用。 getName():该方法是Thread类的实例方法,该方法返回调用该方法的线程的名字。
(2)程序可以通过setName(String name)方法为线程设置名字,也可以通过getName()方法返回指定线程的名字。在默认情况下,主线程的名字为main,用户启动的多条线程的名字依次为:Thread-0、Thread-1、Thread-2、……、Thread-n等。
(3)注意:在调用start方法前后都可以使用setName()方法设置线程名,但在调用start()方法后使用setName()修改线程名称,会产生不确定性,也就是说可能在run()方法执行完后才会去执行setName()方法,此时,如果在run方法中要使用线程名,就会出现虽然调用了setName()方法,但线程名称却未修改的现象。getName()的方同上

回复 使用道具 举报
在应用上还有什么区别
当你继承thread类时,两方法没区别,都是线程对象。
而你实现runnable接口时,this就表示当前对象而不是线程对象,而Thread.currentThread() 表示线程对象。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马