Projet

Général

Profil

Télécharger (1,43 ko) Statistiques
| Branche: | Tag: | Révision:
/*
* This program is a part of the IoTa project.
*
* Copyright © 2008-2012 Université de Caen Basse-Normandie, GREYC
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <http://www.gnu.org/licenses/>
*
* See AUTHORS for a list of contributors.
*/
package fr.unicaen.iota.validator.operations;

import fr.unicaen.iota.validator.Configuration;
import java.util.LinkedList;
import java.util.List;

/**
*
*/
public class ThreadManager {

private final List<Thread> threads;

public ThreadManager() {
this.threads = new LinkedList<Thread>();
}

public synchronized void startThread(Analyser analyser) throws InterruptedException {
while (threads.size() >= Configuration.NUMBER_OF_ACTIVE_THREAD) {
wait();
}
threads.add(analyser);
analyser.setThreadManager(this);
analyser.start();
}

public synchronized void stopThread(Analyser analyser) {
threads.remove(analyser);
notifyAll();
}
}
(9-9/10)