例如迅雷,
可以暂停/重新开始 某个下载任务。
每个任务分配一个线程去下载,这样如何去管理这些线程呢?比如我要暂停某个任务,可以直接杀死对应的线程,重新开始时再创建一个线程从原来的地方开始下载。请问这样的线程管理在JAVA里如何做到?谢谢!

解决方案 »

  1.   

    假如我在开始的时候创建了很多个线程并且start它
    但是某个时候我突然想中止某个线程,该如何做?
    二楼说的线程池,能否详细一些,我查了下,没整明白。
    另外,假设线程池可以管理线程,它是如何安全地终止一个线程的?
      

  2.   

    不是JAVA不允许强行销毁么....难道我记错了......
      

  3.   

    过去JAVA可以用Thread.stop()等方法直接终止线程,但现在这些都不推荐用了,因为他们极不安全,正常终止线程可以:
    1.线程正常执行完毕,正常结束;
    2.监视某些条件,条件满足时退出运行;
    3.捕获InterruptedException 运行时异常,中断当前线程;
      

  4.   

    1,这个就不说了,我需要在线程活着的时候杀死它。
    2,这样当run中代码阻塞时好像无效啊
    3,咋搞?
      

  5.   

    自己看看FutureTask  吧  FutureTask 用于异步获取执行结果或取消执行任务的场景。。线程池只是系统提供自主管理线程的机制。 取消的话看看他的cancle 方法 至于续传我想不到
      

  6.   

    感觉这不是简单的线程机制可以实现的,断点续传应该还有其他方面的问题。 但是线程管理,用线城池
    和futureTask就可以了
      

  7.   


    我一般这么搞。
    public class TestThread implements Runnable {
    private boolean run = false;

    public void run(){
    while(run){
    //.....
    }
    }

    public void start(){
    run = true;
    new Thread(this).start();
    }

    public void stop(){
    if(run){
    run = false;
    }
    }
    }
      

  8.   

    while里的代码超时就不能即时终止线程了
      

  9.   

    试想一下,用播放器去读取DVD,
    由于DVD很破,卡主了,你想强制结束也要卡半天。