Стартонуть 100 потоков - не лучшая идея. Если у вас конечно не 100 ядерный сервер или кластер.
Создатт ExecutorPool на количество с n + 1 потоков. И запихните туда свой Callable. А потом ждите результата на get()
Вот тут официальный оракловский туториал, как это сделать. Я уверен он поможет разобраться.
https://blogs.oracle.com/CoreJavaTechTips/entry/ge...