黑马程序员技术交流社区

标题: 多线程的问题 Thread demo = new Thread(he, "线程"); [打印本页]

作者: 沙漠里的小鱼    时间: 2012-2-22 01:18
标题: 多线程的问题 Thread demo = new Thread(he, "线程");
hello he = new hello();         Thread demo = new Thread(he, "线程"); 这句语句Thread demo = new Thread(he)的意思是让对象he 开启了线程 那Thread demo = new Thread(he, "线程"); 为什么括号里面还加"线程" 这应该怎么理解呢
作者: 张开开    时间: 2012-2-22 10:31
"线程"的意思就是给当前线程起了一个名字,当用getName()方法时,你可以看到线程的名字是"线程"了,也是一种初始化的方式!
作者: 刘基军    时间: 2012-2-22 12:05
查看API:
public Thread(Runnable target,
              String name)分配新的 Thread 对象。这种构造方法与 Thread(null, target, name) 具有相同的作用。

参数:
target - 其 run 方法被调用的对象。
name - 新线程的名称

作者: 【专】【属】    时间: 2012-2-22 12:28
同意上楼的意见。对于第一个jvm会默认给线程命名,可以在线程中通过Thread.CurrentThred().getName()得到这个线程的名字
作者: 左华清    时间: 2012-2-22 15:07
第一步:
hello类实现了Runnable接口,
第二步:启动一个线程Thread tt=new Thread(hello对象),
tt.start();
第三点:Thread的构造函数有多个重载

作者: 沙漠里的小鱼    时间: 2012-2-22 19:12
刘基军 发表于 2012-2-22 12:05
查看API:
public Thread(Runnable target,
              String name)分配新的 Thread 对象。这种构造方 ...

能举个例子说一下吗 谢谢
作者: 刘基军    时间: 2012-2-23 09:50
  1. class Hello implements Runnable
  2. {
  3.         @Override
  4.         public void run()
  5.         {
  6.                 System.out.println(Thread.currentThread().getName()+" say: hi,Java!");       
  7.         }       
  8. }
  9. class ThreadNameTest
  10. {
  11.         public static void main(String[] args)
  12.         {
  13.                 new Thread(new Hello(),"Panda").start();
  14.                 new Thread(new Hello()).start();       
  15.         }
  16. }
复制代码
测试结果:
  1. Panda say: hi,Java!
  2. Thread-0 say: hi,Java!
复制代码





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