Hallo in meinem FTP Modul soll verhindert werden, dass die Aktionen die vom Benutzer ausgelöst wurden, nicht parallel bearbeitet werden. zb es werden gerade Dateien hochgeladen und man entfernt eine Datei.
Dafür habe ich diese Klasse geschrieben.
Was mir nicht gefällt ist das hier :
Gibt es vielleicht in java vordefinierte ThreadPools dafür?
Danke schon mal.
Dafür habe ich diese Klasse geschrieben.
Was mir nicht gefällt ist das hier :
Code:
new ThreadPoolExecutor(1, 1, 2, TimeUnit.MINUTES, workQueue);
Gibt es vielleicht in java vordefinierte ThreadPools dafür?
Danke schon mal.
Java:
public class BlockingQueueThreadExecuter {
private final BlockingQueue<Runnable> workQueue = new ArrayBlockingQueue<Runnable>(20);
private final ThreadPoolExecutor pool = new ThreadPoolExecutor(1, 1, 2,
TimeUnit.MINUTES, workQueue);
private static BlockingQueueThreadExecuter _instance;
/**
* Neue Aufgabe
*
* @param job
*/
public static final void newJob(Runnable job) {
if (_instance == null) {
_instance = new BlockingQueueThreadExecuter();
}
_instance.pool.execute(job);
}
/**
* @param <V>
* @param task
* @return
*/
public static final <V> Future<V> newJob(Callable<V> task) {
if (_instance == null) {
_instance = new BlockingQueueThreadExecuter();
}
return _instance.pool.submit(task);
}
}