#c #c 11
#c #c 11
Вопрос:
Есть ли какой-либо недостаток при передаче как const и по ссылке в многопоточном приложении?
Я провел некоторое исследование, но не смог найти никакого ответа, который объяснял бы его поведение с потоковой обработкой, и это предостережения.
Комментарии:
1. Я думаю, что для ответа на это, вероятно, потребуется целая книга или курс, а не один ответ! Но в принципе, если у вас есть ссылки на один и тот же объект в разных потоках, вам нужна какая-то синхронизация. Если все ссылки относятся к
const
, то вы можете быть в безопасности (при условии, что класс хорошо спроектирован).2. О потокобезопасности const: Const означает потокобезопасность?
3. И Многопоточность C 11 — Тщательно передавайте аргументы потокам
4. @BoBTFish Вам не нужна синхронизация, если все обращения выполняются на чтение. Или если гарантировано, что произойдет только одна запись и никаких чтений. О том, как достичь этих гарантий, можно было бы написать целую книгу.
5. @SumitJha Базовое правило простое: если несколько потоков обращаются к одному и тому же объекту и хотя бы одно из этих обращений связано с записью , то у вас проблема, в остальном все в порядке. И тогда вам также придется беспокоиться о сроках службы (но это еще одна широкая область в C ).