java中线程优先级是针对jvm而言,而不是针对操作系统。如果jvm上运行很多线程,你把你的线程优先级高成最高,那你的线程就跑得最快,优先级算法不知道?

解决方案 »

  1.   

    解决了,解决方法:        public void run() {
                    for (y = 0; y <= 100; y+=5) {
                            repaint();
                            try {
                                    aniLabel.sleep(100);
                            } catch (Exception e) {
                            }
                    }
            }
      

  2.   

    应该是线程同步paint 方法是在另外一个线程(swing的绘制在一个单独线程中) run 的, 调用 repaint 只是向那个线程发送一个消息, 要求它重新调用 paint 方法. 而这个调用又不是即时的,也就是说调用repaint不一定立即调用 paint, paint 也可能在别的方式下调用.
      

  3.   

    panhaidong(),我觉得你的问题还是存在的。你把repaint()提前只是减小了错误几率。不信你把sleep(100)改成sleep(10)甚至sleep(1)。
    用synchronized才能保证正确。