По логике следует после того как один из потоков обнаружит, что список пуст, создать флаг (пустой файл), сообщающий остальным потокам, что список пополняется (чтобы избежать коллизий) и запустить пополнение списка, например через проект в проекте.
По завершению вложенный проект снимает/удаляет...