Кстати, это аналогично попытке прочитать локальную переменную внутри некоторой функции, которую вы вызвали, присвоив эту локальную переменную глобальной переменной, а затем прочитав глобальную переменную.
Аналогия здесьв том, что глобальная переменная действует как разделяемая переменная в многопоточности, по сути, давая доступ к тому, что должно было быть приватным потоком (например, локальная переменная, которая должна быть видима только внутри функции).
Итак, чтобы ответить на вопроскак и просили, разыменование в частной памяти потока полностью допустимо. Это разрешено, потому что разрешено использование псевдонимов указателей (в этом случае 2 или более переменных предоставляют доступ к одному и тому же месту в памяти, в вашем случае одна является частным целым числом потока, а другая - общим указателем).
Несмотря на то, что он полностью действителен, остерегайтесь, что это может привести к некоторым трудностям при обнаружении состояния гонки, поскольку обычно нельзя использовать блокировку для защиты доступа к закрытым переменным потока.