потокобезопасность при возврате простой целочисленной переменной-члена - PullRequest
0 голосов
/ 28 января 2011

В следующем фрагменте кода C # безопасен ли поток GetID ()?

public class SharedData
{
    protected int _nID = 0;
    public int GetID()
    {
        return nID;
    }
}

Заранее спасибо за любые ответы !!

Ответы [ 3 ]

3 голосов
/ 28 января 2011

Это зависит от того, что вы подразумеваете под «потокобезопасность». Например, если под «потокобезопасным» вы подразумеваете «все записи в эту переменную будут гарантированно наблюдаться во всех потоках как происходящие в согласованном порядке», то нет, это вовсе не «потокобезопасность». Если вы имеете в виду «тесты и наборы этой переменной гарантированно дают результаты, согласующиеся с однопоточными правилами зависимости данных», то нет, это вовсе не «потокобезопасно».

Дайте нам точное определение того, что означает "потокобезопасность" для вас, и покажите нам всех авторов и весь код, который зависит от данных этих читателей и авторов, и тогда мы сможем дать вам осмысленное мнение. В этом вопросе недостаточно информации, чтобы хотя бы начать содержательно отвечать на вопрос.

2 голосов
/ 28 января 2011

Чтение потокобезопасно.Если вы собираетесь писать на nID, тогда это станет проблемой.

0 голосов
/ 28 января 2011

Это ничего не меняет. как это может быть потокобезопасным или не защитным потоком?

...