Существует множество статей и обсуждений, объясняющих, почему полезно создавать поточно-ориентированные классы. Говорят, что если доступ к нескольким потокам, например, поле в то же время, могут быть только некоторые плохие последствия. Итак, какой смысл хранить не поточно-безопасный код? Я сосредоточен в основном на .NET, но я считаю, что основные причины не зависят от языка.
например. Статические поля .NET не являются потокобезопасными. Каков будет результат , если они будут потоко-безопасными по умолчанию? (без необходимости выполнять «ручную» блокировку). Каковы преимущества использования (на самом деле по умолчанию) не-потокобезопасности?
Одна вещь, которая приходит мне в голову, - это производительность (хотя, скорее, предположение). Это довольно интуитивно понятно, что когда функция или поле не должны быть потокобезопасными, это не должно быть. Однако вопрос в том, зачем? Потокобезопасность - это просто дополнительный объем кода, который вам всегда нужно реализовать? В каких случаях я могу быть уверен на 100%, например, поле не будет использоваться двумя потоками одновременно?