在线程类操作中,为了安全,不能使用全局变量,现在如果需要A a = new A("f"),就执行A中的线程。该如何将变量f传给run()?
假设有类A:
public class A extend Thread{      public  A(String para){ 
       /*
               */
        this.start();   }      public  run(){
          /*
         /*
          System.out.println(para);//para为构造函数中的para
      }} /*   */该作什么操作可以使得run()获得para变量,不能使用全局变量。
我想过在HttpSession,似乎不合适,还有其他方法吗?

解决方案 »

  1.   

    在A里定义一个这个para,
    public class A extend Thread{     private String para;      public  A(String para){ 
            this.start();
            this.para = para;
       }
          public  run(){          System.out.println(this.para);
          }} 
      

  2.   

    在A里定义一个这个para,刚才位置放错了。
    public class A extend Thread{     private String para;      public  A(String para){         this.para = para;
            this.start();   }
          public  run(){          System.out.println(this.para);
          }} 
      

  3.   

    extends Threadpublic void run(){}
      

  4.   

    楼上的,我的问题就在于不能使用全局变量,所以不允许定义private String para;
    顺便问楼下的,能否让A a =new A();  a.start( para )代参数;
      

  5.   

    那你哪里去存放这个参数?
    而且这个又不是全局变量。只是一个Filed属性而已。全局变量的意思是所有程序都可以用这个变量。对象的属性怎么能算是全局变量呢?
      

  6.   

    A a =new A();  
    a.init(para);
    a.start()
      

  7.   

    A a =new A();  
    a.init(para);
    a.start()
    ~~~~~~~~~~~~~~~~~~~~?
    a.init()似乎没有这个方法阿?
    好像是线程组里面的,怎么用
      

  8.   

    所谓全局变量,在java中指的是static变量,而一个类的非静态private成员不是全局的,从构造函数中传人参数,成员变量保存,在线程中使用,没有什么不可以,不明白楼主为何要求不得使用任何变量?可以把你的原因说出来,说不定有更好的解决方案!