Это действительно сводится к общему состоянию, глобальные и статические локальные являются примерами общего состояния. Если вы не разделяете состояние, у вас не будет проблем. Другие примеры общего состояния включают запись нескольких потоков в файл или сокет.
Любым общим ресурсом необходимо будет правильно управлять - это может означать создание чего-либо защищенного мьютексом, открытие другого файла или интеллектуальную сериализацию запросов.
Если два потока читают и пишут из одной и той же структуры, вам нужно будет обработать этот случай.