日期:2014-05-20  浏览次数:20807 次

很奇怪的一个问题.java中run 函数得不到参数.
public   class   mythread   extends   Thread
{
 
//   Cmdpacket   packet;

private     String   ip;
  int   len;
  public   mythread(String   ip,int   cmd)
{

  start();
this.ip=ip;
if(this.ip==null)
    {  
    System.out.println(this.ip);
    System.out.println( "33333 ");}

//packet=new   Cmdpacket(cmd);
}
public   void   run()
{

  Cmdout td   =new   Cmdout();
    if(this.ip==null)
    {  
    System.out.println(this.ip);
    System.out.println( "2222 ");
   
    }
    else
    {
int   i=td.onsend(this.ip,1024,packet.pkt,8);
    }

}




}


mythread   是一个内部类,当它被调用是有一定概率,public   mythread(String   ip,int   cmd)中的this.ip有值,而public   void   run()中的this.ip无值,真的很奇怪,而且它不经常出现,大约百分之一左右.表现为了33333不打印,而2222打印.

------解决方案--------------------
已解决,start()放后面就好了.已前写的时候没注意到.
------解决方案--------------------
恩,要事情都准备好以后才start