Если вам нужно создать поток, который полностью работает в своем собственном адресном пространстве, то вам нужно создать процесс, а не поток.Потоки по определению являются точками выполнения, работающими в одном и том же адресном пространстве родительского процесса.
Если вам действительно нужно создавать потоки (т. Е. Еще есть память и другие ресурсы, совместно используемые потоками), но вам также необходимо иметьчасть памяти, выделенная для определенного потока, тогда у вас есть несколько вариантов: 1) как предложено ildjarn, иметь процедуру потока, выделяющую локальную (или динамическую память), и написать свой код так, чтобы каждый поток использовал эту память, которую он выделяет для себя 2)Посмотрите на TLS (Thread Local Storage).Это API, который позволяет создавать «глобальные» переменные, которые предназначены для определенного потока.Также в некоторых вариациях C ++ есть встроенные ключевые слова для объявления переменных, которые используют TLS под капотом.
Обратите внимание, что в приведенных выше вариантах вы не получите автоматическую изоляцию, когда поток не сможет повредить память других потоков.Единственный способ получить эту изоляцию - порождать несколько процессов (или переключаться на один из языков .NET и создавать экземпляры нескольких доменов приложений, работающих в одном процессе).