**程序缺陷:闪的太严重原因不明白,请教各位大虾,帮忙看看,谢谢!!!!!
/**编写程序要求三个动物赛跑,步调和频率都不相同。*/
import java.applet.Applet;
import java.awt.*;      
public class saipao extends Applet implements Runnable
{
         Image im1,im2,im3;
         Thread thread1,thread2,thread3;//线程的定义
         int y1=10,y2=10,y3=10;//起始位置。
         int z1=(500+(int)(100*(Math.random()))),//1图频率定义范围。
              z2=(400+(int)(100*(Math.random()))),//2图频率定义范围。
              z3=(300+(int)(100*(Math.random())));//3图频率定义范围。
         int x1=(17+(int)(100*(Math.random()))),//1图步调变化范围。
              x2=(15+(int)(100*(Math.random()))),//2图步调变化范围。
              x3=(20+(int)(100*(Math.random())));//3图步调变化范围。
         public void init()
         {    
                 im1=getImage(getDocumentBase(),"tupian1.gif"); 
                 im2=getImage(getDocumentBase(),"tupian2.gif");    
                 im3=getImage(getDocumentBase(),"tupian3.gif");  
         }
         public void start()
         {
                 thread1=new Thread(this,"FirstThread"); 
                 thread2=new Thread(this,"SecondThread");
                 thread3=new Thread(this,"ThirdThread");
                 thread1.start();
                 thread2.start();
                 thread3.start();
         }
         public void paint(Graphics g)
         {
                 g.drawImage(im1,y1,30,this);
                 g.drawImage(im2,y2,120,this);
                 g.drawImage(im3,y3,210,this);
                 g.drawLine(80,10,80,260);
                 g.drawLine(790,10,790,260);   
          }        
         public void run()
         {
         String name;
         name=Thread.currentThread().getName();
             while(true)
             {
             if(name.equals("FirstThread"))
             {        
                   y1=y1+x1;  
                   if(y1>=750)
                   {
                          break;
                   }
             }
             else if(name.equals("SecondThread"))
             {
                   y2=y2+x2;
                   if(y2>=750) 
                   {
                            break;
                   }
             }
             else if(name.equals("ThirdThread"))
             {
                   y3=y3+x3; 
                   if(y3>=750) 
                   {
                            break;
                   }
             }//步调的不同变化范围
             try
             {
                    if(name.equals("FirstThread"))
                    {
                            Thread.sleep(z1);
                    }
                    else if(name.equals("SecondThread"))
                    {
                            Thread.sleep(z2);
                    }
                    else if(name.equals("ThirdThread"))
                    {
                            Thread.sleep(z3);
                    }
              } //频率的不同变化范围
                   catch(InterruptedException e)
                   {
                            System.out.println("发生错误!");
                    }
          }
          }     
}/