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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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);
                }
        }
}

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

1 个回复

倒序浏览
见注释里:
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);
                }
        }
}

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

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