黑马程序员技术交流社区
标题:
线程获取名字,这两个语句有区别吗?
[打印本页]
作者:
我能驾驭住
时间:
2012-5-19 15:06
标题:
线程获取名字,这两个语句有区别吗?
System.out.println(this.getName()+"text run..."+x);
System.out.println(Thread.currendThread().getName()+"text run..."+x);
这两个语句一样吗?毕老师说不一样,我搞不懂,纯程获取名字懂了,自定义也懂了,后面这个语句是什么神马意思呢?
Thread.currendThread().getName()+"//默认线程名字获取是以Thread-0 Thread-1...............
class Test extends Thread
{
public void run() //这里是算定义线程存放的代码
{
for(int x=0;x<15;x++)
{
System.out.println(this.getName()+"text run..."+x);
}
}
}
class ThreadTest
{
public static void main(String[] args)
{
Test t1=new Test();//建立对象,就是相当于建立一个线程
Test t2=new Test();//建立对象,建立第二个线程
t1.start();//开启线程,调用run()方法
t2.start();
//下面这个是主线程里面存放的代码
for(int x=0;x<15;x++)
{
System.out.println("main...."+x);
}
}
}
//下面这个是自定义线程名称...
class Test extends Thread
{
Test(String name)//接收类型为string的构造函数
{
super(name);//thread父类中的名字
}
public void run()
{
for(int x=0;x<15;x++)
{
System.out.println(this.getName()+"text run..."+x);
System.out.println(Thread.currendThread().getName()+"text run..."+x);
//上面这两个语句功能是一样的,只是线程的第二种方法,用第二条语句保险一点!
}
}
}
class ThreadTest
{
public static void main(String[] args)
{
Test t1=new Test("one...");
Test t2=new Test("two...");
t1.start();
t2.start();
for(int x=0;x<15;x++)
{
System.out.println("main...."+x);
}
}
}
作者:
李文富
时间:
2012-5-19 15:16
见注释里:
System.out.println(this.getName()+"text run..."+x);
System.out.println(Thread.currendThread().getName()+"text run..."+x);
这两个语句一样吗?毕老师说不一样,我搞不懂,纯程获取名字懂了,自定义也懂了,后面这个语句是什么神马意思呢?
//Thread.currendThread().getName()在线程下取得当前线程的名字,
//currentdTheread()是指调用当前线程立刻打印的意思,第一个this表示当前的线程对象,有可能产生打印延时。
Thread.currendThread().getName()+"//默认线程名字获取是以Thread-0 Thread-1...............
class Test extends Thread
{
public void run() //这里是算定义线程存放的代码;这里是覆写run方法;
{
for(int x=0;x<15;x++)
{
System.out.println(this.getName()+"text run..."+x);
}
}
}
class ThreadTest
{
public static void main(String[] args)
{
Test t1=new Test();//建立对象,就是相当于建立一个线程
Test t2=new Test();//建立对象,建立第二个线程
t1.start();//开启线程,调用run()方法
t2.start();
//下面这个是主线程里面存放的代码
for(int x=0;x<15;x++)
{
System.out.println("main...."+x);
}
}
}
//下面这个是自定义线程名称...
class Test extends Thread
{
Test(String name)//接收类型为string的构造函数
{
super(name);//thread父类中的名字
}
public void run()
{
for(int x=0;x<15;x++)
{
System.out.println(this.getName()+"text run..."+x);
System.out.println(Thread.currendThread().getName()+"text run..."+x);
//上面这两个语句功能是一样的,只是线程的第二种方法,用第二条语句保险一点!
//currentdTheread()是指调用当前线程的意思,用第一个this表示当前的线程对象,有可能产生延时
}
}
}
class ThreadTest
{
public static void main(String[] args)
{
Test t1=new Test("one...");
Test t2=new Test("two...");
t1.start();
t2.start();
for(int x=0;x<15;x++)
{
System.out.println("main...."+x);
}
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2