View Single Post
Old 25-04-2008, 18:33   #1
braian
Member
 
L'Avatar di braian
 
Iscritto dal: Apr 2007
Messaggi: 153
[JAVA]nterrompere thread in pool

Apro questo 3d con una domanda ma mi sa che dovrò farne altre anche sebbene inerenti. Intanto chiedo questo:
come si fa ad interrompere un thread che fa parte di un pool?
io ho provato così ma non me lo interrompe:
Codice:
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

/**
 *
 * @author Daniele
 */
public class Main {
        ExecutorService executor;
        ExecutorService executor2;
        TaskClass tread1;
        TaskClass tread2;
        Thread task1;
        Thread task2;
    
   public Main(){
        this.executor =Executors.newFixedThreadPool(2);
        this.executor2=Executors.newFixedThreadPool(1);
        this.tread1 = new TaskClass();
        this.tread2 = new TaskClass();
        this.task1 = new Thread(tread1);
        this.task2 = new Thread(tread2);
        executor.execute(task1);
        executor2.execute(task2);
        
   }
    
    /**
     * @param args the command line arguments
     */
    @SuppressWarnings("static-access")
    public static void main(String[] args) throws InterruptedException {
        
        Main princ = new Main();
        Thread t = new Thread();
        t.sleep(4000);
        princ.task1.interrupt();
        if(princ.task1.isInterrupted())
        {
            System.out.println("ora interrotto");
        }
        System.out.println("fine");
    }


    public class TaskClass implements Runnable{

        public void run() {
            while(!Thread.interrupted()){
                
            }
            System.out.println("interrotto");
        }
        
    }
}
ovvero non appare la scritta "ora interrotto"

Ultima modifica di braian : 25-04-2008 alle 18:41.
braian è offline   Rispondi citando il messaggio o parte di esso