黑马程序员技术交流社区

标题: 调用系统名字,我查得帮助文档,不明白为什么要加currentThread [打印本页]

作者: lanbuohan    时间: 2013-5-23 01:31
标题: 调用系统名字,我查得帮助文档,不明白为什么要加currentThread
public class Test_C3
{
        public static void main(String[] args)
        {
                T t = new T();
                t.setName("小牛");
                t.start();
               
                for(int i=0;i<30;++i)
                {
                        System.out.println("嘿嘿");
                        System.out.printf("%s线程被调用\n",Thread.currentThread().getName());       
                }       
        }       
}

class T extends Thread
{
        public void run()
        {
                for(int i=0; i<30;++i)
                {
                        System.out.printf("哈哈\n");
                        System.out.printf("%s线程被调用\n",Thread.currentThread().getName());       
                }       
        }       
}
作者: student    时间: 2013-5-23 08:17
currentThread方法是Thread的静态方法,表示:返回对当前正在执行的线程对象的引用,也就是返回当前执行的线程。
例如下面的例子,在主函数中调用currentThread方法则返回主线程main,在Demo类中调用currentThread方法则返回则返回当前线程,当前线程下表从0开始,如Thread-0:
  1. class Demo extends Thread {
  2.         public void run() {
  3.                 System.out.println("执行线程:"+Thread.currentThread().getName());
  4.         }
  5. }

  6. public class ThreadTest {
  7.         public static void main(String[] args) {

  8.                 //启动线程
  9.                 new Demo().start();
  10.                 //获取主线程的名称
  11.                 System.out.println("执行线程:"+Thread.currentThread().getName());
  12.                
  13.                 /*        运行结果:
  14.                  *
  15.                  *        执行线程:main
  16.                  *        执行线程:Thread-0
  17.                  */
  18.         }
  19. }
复制代码

作者: 刘治广    时间: 2013-5-23 09:01
一楼说的很对,main函数不是Thread的子类要想用currentThread方法,就必须+Thread.currentThread().getName()
作者: SOAR    时间: 2013-5-23 09:25
Thread.currentThread().getName());        
你可以分析分析这段英文啊,Thread.currentThread线程组里面当前运行的线程Thread.currentThread.getName().线程组里面当前运行的线程的名字
你可以这样想想,每个人开学的时候都要去班主任那报个到,然后才能开始一学期的生活。结果有一天系主任来班里查人了,“小王,班里今天都缺的谁啊”,班主任到教室一看原来就坐着一个学生啊,这个学生的状态也就是线程里的Alive() ,然后版主任就开始报告了“我查了一下班里就来了一个人Thread.currentThread,他的名字是Thread.currentThread.getName()除了他别人都没来。”
作者: 史政法    时间: 2013-5-23 09:30
刘治广 发表于 2013-5-23 09:01
一楼说的很对,main函数不是Thread的子类要想用currentThread方法,就必须+Thread.currentThread().getName ...

,,,,,,,为什么你们的知识点跟视频上的都不一样,视频上没讲过使用.printf这个方法啊,也没讲过字符串里加%s的意义啊,,你们怎么知道的?求指教。。。。
作者: 刘治广    时间: 2013-5-23 09:34
我现在在传智学java基础,知识点老师都会说到的




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