Ну, да, это технически верно, но на этот ответ так много предостережений, что я очень волнуюсь, чтобы сказать вам, да. Потому что, в то время как вы можете записывать в два разных места в массиве, вы не можете делать больше ничего, не сталкиваясь с проблемами параллелизма. Реальный вопрос заключается в том, что дальше ты собираешься делать, если сможешь это сделать?
Если у вас есть счетчики переменных, которые перемещаются при записи массивов в разные места, вы можете столкнуться с проблемами параллелизма. Вполне возможно, что, когда ваш массив заполнится, вы можете попытаться записать два потока в одно и то же место. Если у вас потенциально есть считыватель массива, который может прочитать то же местоположение, что и для записи, у вас возникнут проблемы с параллелизмом. Кроме того, письмо ничего не делает, если вы никогда не планируете читать его обратно, поэтому, я думаю, у вас возникнут проблемы с параллелизмом, когда вы добавите читателя (который должен будет блокировать ваших писателей). Тогда возникает вопрос: не двигаетесь ли вы туда, куда записывают потоки, что мешает ему записывать данные? И если вы никогда не перемещаете заголовок того, куда пишет поток, почему вы используете массив? Просто дайте им отдельные защелки или их собственные переменные для записи, и действительно держите их отдельно.
Без полной картины ваших намерений, если вы скажете «да», это может привести к опасности, не задумываясь о том, почему вы делаете то, что делаете.