黑马程序员技术交流社区
标题:
关于获取当前线程对象的疑问
[打印本页]
作者:
杨翔
时间:
2013-1-15 11:12
标题:
关于获取当前线程对象的疑问
本帖最后由 冯海霞 于 2013-1-16 11:07 编辑
这个一个卖票的小程序,我的疑问是在获取当前运行对象的名称的地方,我用this.getName是会报错的,同样是使用当前对象调用getName方法啊,为什么用this就会报找不到符号错误呢
class Ticket implements Runnable
{
private int ticket = 100;
public void run()
{
while(true)
{
if(ticket > 0)
{
//此处获取当前对象的名称并打印票,但是这样用this是报错的,要用 Thread.currentThread().getName() 才可以
System.out.println(this.getName() + "------------" + ticket--);
}
}
}
}
class TicketDemo
{
public static void main(String[] args)
{
Ticket t = new Ticket();
//建立线程
Thread t1 = new Thread(t);
Thread t2 = new Thread(t);
t1.start();
t2.start();
}
}
复制代码
作者:
张敬培
时间:
2013-1-15 14:54
你的Ticket 类实现的是Runnable接口,在这个接口中没有getName()这个方法,所以this.getName()会报错,而使用Thread.currentThread().getName(),是因为Thread类实现了Runnable接口,Thread.currentThread()的返回值是一个Thread对象,通过对象调用getName()方法,获得当前的线程名称。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2