2013-03-12 3 views
1

Я хотел бы реализовать часть программного обеспечения, которые убеждаются 10 threads работает тот же класс все времяподдерживать определенное количество запущенных потоков (Java)

Все threads будет прекратить, скажем, через определенное количество секунд в случайном порядке, но затем, я хочу убедиться, что как только они будут прекращены, они мгновенно заменяются вновь созданным threads.

Знаете ли вы, есть ли библиотека?

Большое спасибо, Влад

+0

... почему? Что вы действительно пытаетесь выполнить? –

+2

Рассмотрите возможность использования threadpool (с размером 10), выполняющего ваши задачи. Таким образом, потоки будут переработаны вместо замены (так что это не актуальный ответ на ваш вопрос, но, возможно, для ваших нужд). Поддержка этого уже есть в Java. – Alpedar

+0

Я пытаюсь создать службу, которая непрерывно опроса базы данных. Каждая возвращенная строка будет обрабатываться независимо по потоку. – 2013-03-12 16:55:42

ответ

5

Скорее использовать пул потоков. Java Executor обеспечивает его.

ExecutorService executor = Executors.newFixedThreadPool(10); 
+0

Хорошо, но как должен выглядеть код? Я пробовал этот код (http://pastebin.com/YXyepb7c), и работает только два потока, а затем все просто идет в цикле: – 2013-03-12 16:56:12

+0

вы можете начать с учебника по инфраструктуре Executor и проверить пример - [link] (http: //tutorials.jenkov.com/java-util-concurrent/executorservice.html), [link1] (www.vogella.com/.../ JavaConcurrency/article.html) –

0
ExecutorService executorPool = Executors.newFixedThreadPool(noOfThreads); 

общественного статический ExecutorService newFixedThreadPool (INT) nThreads

Creates a thread pool that reuses a fixed set of threads operating off a 

shared unbounded queue. If any thread terminates due to a failure during execution prior to shutdown, a new one will take its place if needed to execute subsequent tasks. 

Parameters: 
    nThreads - the number of threads in the pool 
Returns: 
    the newly created thread pool 
Смежные вопросы