Если потоки являются относительными, они совместно используют одну и ту же память, и эта общая память является основным связующим звеном между ними.
Если потоки не являются относительными, они сообщают о событиях отправки.
А как насчет связи между потоками из разных процессов?
Тогда вы используете межпроцессного взаимодействия. Неважно, что вы делаете это в потоках в каждом процессе, связь между процессами (по определению) всегда межпроцессная.
Других решений пока нет …