Я думаю, что если выражение «i ++» является единственным в выражении, оно эквивалентно «++ i», компилятор достаточно умен, чтобы не сохранять временное значение и т. Д. Поэтому, если вы можете использовать их взаимозаменяемо ( в противном случае вы не будете спрашивать, какой из них использовать), не имеет значения, какой бы вы ни использовали, поскольку они почти одинаковы (за исключением эстетики).
В любом случае, даже если оператор приращения является атомарным, это не гарантирует, что остальная часть вычислений будет последовательной, если вы не используете правильные блокировки.
Если вы хотите поэкспериментировать самостоятельно, напишите программу, в которой N потоков одновременно увеличивают общую переменную M раз каждая ... если значение меньше N * M, то некоторое приращение было перезаписано. Попробуйте это как с преинкрементом, так и с постинкрементом и сообщите нам; -)