Если честно, я не видел готового решения, но именно поэтому мы, программисты, существуем: чтобы создать решение, если оно недоступно :-)
То, как я бы это сделал, похоже на то, что вы описываете: использование потоков - если это веб-приложение, то ajax - ваш друг по скорости и удобству использования, для представления графического интерфейса настольного приложения даже не проблема.
Похоже, вы не можете заранее определить или угадать, какой источник является лучшим с точки зрения надежности, скорости и количества результатов. Поэтому вам нужно настроить программу так, чтобы она определяла лучшие результаты на лету. Допустим, у вас есть 10 источников данных и, следовательно, 10 потоков. Когда вы запустите свои потоки - подождите, пока первый из них вернется с результатами> 0. Это будет ваш "главный" результат. Когда другие потоки возвращаются, вы можете сравнить их с вашим «основным» результатом и добавить новые результаты. Нет никакого способа избежать этого, если вы хотите предоставить уникальные результаты. Вы можете начать отображать результаты, как только у вас появится первая тема. Вам не нужно сразу обновлять экран, добавляя в него все новые результаты, но если это займет некоторое время, пользователь может заволноваться. Вы можете просто иметь какой-то индикатор, который показывает, что доступно больше результатов, например, если у вас их больше 10.
Если у вас есть только несколько источников, например, 10, и вы ограничиваете количество результатов на источник, который вы ожидаете, до 10, то для их сортировки на любом языке программирования действительно не потребуется много времени. Также убедитесь, что вы можете восстановить, если ваши удаленные источники недоступны. Если, скажем, вы ожидаете, что все 10 источников вернутся для отображения данных - возможно, вас ждет долгое ожидание, если один из источников не работает.
Другой подход - к пользователю f00l. Вроде как сайты поиска авиабилетов делают - где они заставляют вас хотеть несколько секунд, пока они собирают и сортируют результаты. Мне очень нравится реализация Kayak.com - она заставляет меня чувствовать, что она делает что-то непохожее на некоторые другие сайты.
Надеюсь, это поможет.