В вашем вопросе недостаточно информации, чтобы дать вам точный ответ, но в целом - если у вас несколько потоков, и один генерирует данные, другой использует их, то да, вам потребуется синхронизация.
Вы можете использовать BlockingQueue
или просто простой синхронизированный объект, в зависимости от того, что подходит для вашего случая ... но вам потребуется некоторая синхронизация, иначе вы рискуете получить случайные трудно воспроизводимые сбои.
Это еще более важно при работе с многоядерными системами, которые сейчас становятся популярными.