Beleza, você não pode armazenar todos os resultados mas você pode armazenar um (se você conseguir garantir um acesso restrito para consumo desse resultado).
Acho que você entendeu direitinho o problema
Existem vários jeitos de controlar o consumo de informações, semáforos são uma solução sim. Se vai ficar confuso ou não depende do seu código.
Agora pense como você vai fazer para manter a sua thread consumidora prestando atenção para saber se o resultado está pronto para ser impresso.
Use a solução mais simples que conseguir por enquanto. Depois você pensa em otimizar ela.