Schreib Dir für Deinen Pool einfach einen Runnable
Proxy. Der Proxy ist selbst ein Runnable und ruft das eigentliche Runnable auf. Wenn das eigentliche Runnable endet, benachrichtigt der Proxy den Pool.
Kleiner Hinweis: Die Java 5 Concurrency API hat selbst schon verschiedene Implementierungen für Thread-Pools (siehe Executors, ExecutorService).