На самом деле все зависит от планировщика, типа многопроцессорной обработки и текущей рабочей среды.
Ничего не принимайте, тестируйте, тестируйте, тестируйте!
Если вы единственный многопоточныйпроцесс в системе, многопоточность, как правило, хорошая идея.
Однако, с точки зрения простоты разработки, иногда требуется отдельное адресное пространство и общие данные, особенно в системах NUMA.
Одно можно сказать наверняка: если это система «HyperThreaded», потоки становятся намного более эффективными благодаря тесному совместному использованию памяти.
Если это обычная многоядерная обработка .. она должна быть похожей.
Если это система NUMA, лучше хранить данные совместно и код отдельно.Опять же, все зависит от архитектуры и не влияет на производительность, если вы не работаете в HPC.
Если вы занимаетесь производством HPC (суперкомпьютеров), TEST !.Все зависит от машины (а преимущества составляют в среднем 10-25%, это важно, если вы говорите о днях разницы)