今天用多线程的知识写了一个JAVA小程序 ,可是编译几次后,机子就慢得不行了,后来几乎到了无法忍受的程序,把eclipse关掉以后一切恢复。
请问各位大侠,有没有什么好的办法可解决这个问题呢?

解决方案 »

  1.   

    我这个程序是模仿售票的业务来做的,没有数据层,也没有UI层,很简单的程序。
    下面驱动类:
    package csust;public class ThreadDriver {
    public ThreadDriver(){
    }
        public static void main(String[] args){
         MyThread my = new MyThread();
         new Thread(my).start();
         new Thread(my).start();
         new Thread(my).start();
         new Thread(my).start();
        }
    }
    下面线程使用的类:
    package csust;public class MyThread implements Runnable {
    private int count = 100;
    String str = "";
        public void run(){
            while(count > 0){
    //         synchronized(str){
    //         try {
    // Thread.sleep(10);
    // } catch (InterruptedException e) {
    // e.printStackTrace();
    // }
    System.out.println("现在由窗口:  " + Thread.currentThread().getName() + "售出第  " +count-- +"  张票");
    //         }
            }    
        }
    }
    ---------------------------------------------------------------------------
    谢谢各位了。
      

  2.   

    运行完了 得到你想要的记过 请记得把 运行的窗口中有个停止运行这个按扭 是个红色的防型的!点了那个 E 后台就不运行这个程序了! 这就是你为什么关了 E 后 系统又好使了! 那是因为你没关掉 在E 后台运行的程序!
      

  3.   

    sleep(10)太少了,sleep(1000)就不会太慢了
      

  4.   

    得到你想要的结果!上面打错!  方型按扭!   E 为 eclipse
      

  5.   

    没有try{
       interrupt();
    }catch{
       return;
    }
    if(!interrupted()){
    ....
    }你的4个线程好象是死循环嘛
      

  6.   

    10ms的运行频率太高了,更何况是4个thread一起运行~
      

  7.   

    你的机子可能不够好,还有,一般停止Thread的方法是不好的,最好用flag来控制
      

  8.   

    嘿嘿,谢谢各位的支持。
    我把sleep(10)搞成sleep(1000)后效果好多了。
    JAVA_JAVA_JAVA_JAVA兄弟提醒得对,但是我还知道关这个的,嘿嘿,不过也多谢你的提醒。
      

  9.   

    怎么光有start()没有stop()那,这样程序是一直在运行的,添加中断命令,或停止,就不会慢了,我刚做个多线成的程序
      

  10.   

    对了,学完JAVA的多线程以后,觉得以前学的《操作系统》这门真的很有用,幸好认真学了。
    以后不会说大学教育没用了。