黑马程序员技术交流社区

标题: 多线程中的currentThread() 方法与getName方法 [打印本页]

作者: 郭振    时间: 2012-5-6 14:41
标题: 多线程中的currentThread() 方法与getName方法
我想问一下Thread.currentThread() 与this除了一个是静态的,表示当前对象,除了这个在应用上还有什么区别
作者: Zhang_qian    时间: 2012-5-6 18:38
(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()的方同上


作者: 黑马张立国    时间: 2012-5-6 19:11
在应用上还有什么区别
当你继承thread类时,两方法没区别,都是线程对象。
而你实现runnable接口时,this就表示当前对象而不是线程对象,而Thread.currentThread() 表示线程对象。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2