我认为线程池就是您正在寻找的。看一下 ExecutorService 和 Executors。
执行者服务:http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/ExecutorService.html
执行人:http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/Executors.html
获取一个新的线程固定线程池,可处理最多。一次 10 个线程:
ExecutorService threadPool = Executors.newFixedThreadPool(10);
使用提交方法,您可以将 Callables 或 Runnables 传递到池中。
对于您的用例,您需要一个查看队列的进程,如果有新请求,则必须创建 Callable 或 Runnable 并将其传递到线程池。池确保最大。一次执行 10 个线程。
这是一个非常小的教程:http://www.math.uni-hamburg.de/doc/java/tutorial/essential/threads/group.html
使用线程池的一个好处是,submit 方法返回一个 Future 对象,该对象支持已执行线程的返回类型。
未来 :http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/Future.html
我希望这可以帮助您解决您的问题。