很奇怪的一个问题.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