黑马程序员技术交流社区

标题: 关于线程的问题 [打印本页]

作者: 王睿    时间: 2012-3-2 23:27
标题: 关于线程的问题
  1.                  Thread thread = new Thread(){
  2.                         @Override
  3.                         public void run() {
  4.                                 while(true){
  5.                                         try {
  6.                                                 Thread.sleep(1000);
  7.                                         } catch (InterruptedException e) {
  8.                                                 e.printStackTrace();
  9.                                         }
  10.                                         //这里eclipse提示不能引用另一方法中定义的内部类中非终态变量 thread
  11.                                         System.out.println(thread.currentThread().getName());
  12.                                         System.out.println(this.getName());
  13.                                 }
  14.                         }
  15.                 };
  16.                 thread.start();
复制代码


我用的是eclipse3.7和java1.7,是版本的问题吗?
  1.            final   Thread thread = new Thread(){
  2.                         @Override
  3.                         public void run() {
  4.                                 while(true){
  5.                                         try {
  6.                                                 Thread.sleep(1000);
  7.                                         } catch (InterruptedException e) {
  8.                                                 e.printStackTrace();
  9.                                         }
  10.                                         //上面加上 final后又提示:局部变量 thread 可能尚未初始化
  11.                                         System.out.println(thread.currentThread().getName());
  12.                                         System.out.println(this.getName());
  13.                                 }
  14.                         }
  15.                 };
  16.                 thread.start();
复制代码

作者: 王睿    时间: 2012-3-2 23:36
晕了我大意了,就当方面教材吧,thread应该大写T。{:soso_e106:}
作者: 李成航    时间: 2012-3-2 23:52
创建线程的方式不对,有两种方法:
1)向Thread中传入Runnable对象,如new Thread(new Runnable(){public void run(){......}})
2)继承Thread,通过Thread的子类创建对象,并在子类中重写run方法
Thread t=new Mythread();
cllass Mythread extends Thread{.....重写run方法....}

楼主通过直接Thread t=new Thread();当然会出现错误提示。




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