У меня есть несколько объектов, которые мне нужно выполнить из разных потоков в C++. Я знал, что необходимо заблокировать любую переменную, которая может использоваться более чем одним потоком одновременно, но что, если каждый поток обращается (записывает) к другому члену данных того же объекта? Например, каждый поток вызывает другой метод объекта, и ни один из методов, называемых модификацией одного и того же элемента данных. Является ли он безопасным, если я не получаю доступ к одному и тому же элементу данных или мне вообще нужно блокировать весь объект?Доступ к различным элементам данных, принадлежащим к одному и тому же объекту, из 2-х разных потоков в C++
Я искал пояснения и подробности по этой теме, но каждый пример, похоже, сосредоточен на одиночных переменных или нечленовских функциях.
Подводя итог: Могу ли я безопасно получить доступ к 2 различным элементам данных одного и того же объекта из 2 разных потоков без блокировки всего объекта?
Как вы можете быть уверены, что никогда не сможете получить доступ к одному члену из двух потоков одновременно? –
У вас нет блокировки для каждой переменной структуры вместо блокировки для каждой структуры. мелкозернистая блокировка ?? –