Size: a a a

2020 July 27

IZ

Ilia Zviagin in supapro.cxx
Сорри если пинганул не того Роммана
источник

В

Владимир in supapro.cxx
Square Root
Переслано от Роман
нужна помощь в задаче С++  :  Найти сумму ряда последовательных чисел от 0 до N  знакопеременного ряда 
(знаки чисел чередуются) , где N - вводится с клавиатуры.  Заминка в знакопеременном ряде , не судите строго только учусь.
Заранее спасибо.
А в чем проблема? Вроде все просто: sum += std::pow(-1, i)*i; i=1,...,N;
источник

VS

Vladimir Suisei in supapro.cxx
Допустим есть глобальный объект, внутри которого есть некая булева переменная.
Этот объект в своем треде выполняет некие действия, и в какой-то момент ставит переменную в тру.
Я из другого треда чекаю через геттер состояние этой переменной.
Нужно ли делать эту переменную атомиком?
источник

AS

Anatoly Shirokov in supapro.cxx
Vladimir Suisei
Допустим есть глобальный объект, внутри которого есть некая булева переменная.
Этот объект в своем треде выполняет некие действия, и в какой-то момент ставит переменную в тру.
Я из другого треда чекаю через геттер состояние этой переменной.
Нужно ли делать эту переменную атомиком?
да, иначе data race
источник

VS

Vladimir Suisei in supapro.cxx
Anatoly Shirokov
да, иначе data race
Можешь подробнее пояснить как это в этом случае может проявиться?
источник

TS

Till Schneider in supapro.cxx
Vladimir Suisei
Допустим есть глобальный объект, внутри которого есть некая булева переменная.
Этот объект в своем треде выполняет некие действия, и в какой-то момент ставит переменную в тру.
Я из другого треда чекаю через геттер состояние этой переменной.
Нужно ли делать эту переменную атомиком?
если есть гарантия того, что обращение к bool переменной не произойдет в один момент из разных потоков (на чтение и запись), то делать атомиком не нужно
источник

AS

Anatoly Shirokov in supapro.cxx
Vladimir Suisei
Можешь подробнее пояснить как это в этом случае может проявиться?
источник

AS

Anatoly Shirokov in supapro.cxx
Till Schneider
если есть гарантия того, что обращение к bool переменной не произойдет в один момент из разных потоков (на чтение и запись), то делать атомиком не нужно
а кто же эту гарантию дает?
источник

TS

Till Schneider in supapro.cxx
Anatoly Shirokov
а кто же эту гарантию дает?
разработчик / автор библиотеки
источник

AS

Anatoly Shirokov in supapro.cxx
Till Schneider
разработчик / автор библиотеки
ну такое
источник

VS

Vladimir Suisei in supapro.cxx
А можно ссылку на источник или некий сопроводительный текст к картинке?
источник

AS

Anatoly Shirokov in supapro.cxx
Vladimir Suisei
А можно ссылку на источник или некий сопроводительный текст к картинке?
условие "плохой" гонки: возможность чтения/записи одной переменной из нескольких потоков
источник

DP

Denis Paukaev in supapro.cxx
Till Schneider
если есть гарантия того, что обращение к bool переменной не произойдет в один момент из разных потоков (на чтение и запись), то делать атомиком не нужно
Это путь по граблям
источник

VS

Vladimir Suisei in supapro.cxx
Anatoly Shirokov
условие "плохой" гонки: возможность чтения/записи одной переменной из нескольких потоков
Так а суть то в чем? Что пока если я одновременно пишу и читаю, я могу прочитать пока другой не закончил писать и получу неопределенное значение?
Но ведь в bool только тру или фолс. Если я в программе в цикле много раз проверяю значение этой переменной, то я в любом случае поймаю смену состояния
источник

DP

Denis Paukaev in supapro.cxx
Vladimir Suisei
Так а суть то в чем? Что пока если я одновременно пишу и читаю, я могу прочитать пока другой не закончил писать и получу неопределенное значение?
Но ведь в bool только тру или фолс. Если я в программе в цикле много раз проверяю значение этой переменной, то я в любом случае поймаю смену состояния
Нужно просто запомнить что это уб, и все
источник

AS

Anatoly Shirokov in supapro.cxx
Vladimir Suisei
Так а суть то в чем? Что пока если я одновременно пишу и читаю, я могу прочитать пока другой не закончил писать и получу неопределенное значение?
Но ведь в bool только тру или фолс. Если я в программе в цикле много раз проверяю значение этой переменной, то я в любом случае поймаю смену состояния
атомарность чтения записи для bool не гарантируется, поэтому либо используешь https://en.cppreference.com/w/cpp/atomic/atomic_flag, либо std::atomic<bool>
источник

К

Константин in supapro.cxx
Vladimir Suisei
Так а суть то в чем? Что пока если я одновременно пишу и читаю, я могу прочитать пока другой не закончил писать и получу неопределенное значение?
Но ведь в bool только тру или фолс. Если я в программе в цикле много раз проверяю значение этой переменной, то я в любом случае поймаю смену состояния
у тебя там в любом случае гонка ресурсов
источник

К

Константин in supapro.cxx
делай как Анатолий скинул ссыль
источник

VS

Vladimir Suisei in supapro.cxx
Я понял как делать, мне интресены последствия если так не сделать в данном случае
источник

IZ

Ilia Zviagin in supapro.cxx
Vladimir Suisei
Допустим есть глобальный объект, внутри которого есть некая булева переменная.
Этот объект в своем треде выполняет некие действия, и в какой-то момент ставит переменную в тру.
Я из другого треда чекаю через геттер состояние этой переменной.
Нужно ли делать эту переменную атомиком?
Нужно. Либо защищать мьютексом
источник