解决方案 »

  1.   

    10个线程太多了,建议你用线程池 开4,5个线程 可以复用 毕竟线程非常消耗CPU和内存。
    线程是无法立刻停止的,可以在线程里面添加标志位如果线程下载图片成功就无需循环了,
    如果用了线程池那就不需要了,可以长期利用线程,大概开2个线程就好了。
      

  2.   

    可以用IntentService启动后台服务加载线程,这个只会一个一个的加载,加载完一个就会结束掉一个线程
      

  3.   

    java中线程是不能取消的,想其他办法解决吧
      

  4.   

    楼上好多都说用线程池,那如果按照下面的方式
    ExecutorService pool = Executors.newFixedThreadPool(2); 
    //创建实现了Runnable接口对象,Thread对象当然也实现了Runnable接口 
    MyThread t1 = new MyThread(); 
    MyThread t2 = new MyThread(); 
    MyThread t3 = new MyThread(); 
    MyThread t4 = new MyThread(); 
    MyThread t5 = new MyThread(); 
    //将线程放入池中进行执行 
    pool.execute(t1); 
    pool.execute(t2); 
    pool.execute(t3); 
    pool.execute(t4); 
    pool.execute(t5);
    上面创建了一个有2个线程的线程池,有没有办法判断t1、t2、t3、t4、t5是正在排队等待,还是已经在执行,因为我想将正在排队等待的任务取消掉,假如说t1、t2正在执行,那我想把后面三个正在排队等待的任务取消掉,该怎么办喃
      

  5.   

    可以提交执行FutuTask 
     ExecutorService aa = Executors.newCachedThreadPool();
      FutureTask<String>  a = new FutureTask<String>(new Callable<String>() { @Override
    public String call() throws Exception {
    return null;
    }
     
       });
      aa.submit(a);
      a.cancel(true);