Если используется кеш на уровне ОС, а не на уровне приложения, то все будет ок.
Для надежности и сокращения ошибок, можете сделать 3-й поток под отправку, и уже в него складывать все данные для отправки.
Если файлы отсортированы, то можно итерировать оба файла одновременно (с выравниванием позиции по значению), таким образом за один проход можно получить пересечение, без необходимости все загружать в память.
Если не сортированы, тогда загрузить в set'ы и выполнить пересечение, как посоветовали выше.
Поддержу Сергей Протько, скорости питона хватает в 98% случаев, остальные 2% добиваются на Си, Го и пр. Таким образом сохраняется скорость разработки и производительность.