|
Небольшой вопрос про std::thread
|
|||
---|---|---|---|
#18+
petrav В этом и был начальный вопрос. Осталось переписать исходный код так что бы он был потокобезопасным. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2020, 03:29 |
|
Небольшой вопрос про std::thread
|
|||
---|---|---|---|
#18+
petrav rdb_dev пропущено... В стандарте ничего не сказано о барьерах памяти до конструктора std::thread и после join(). Сказано лишь, что join() блокирует вызывающий поток до тех пор, пока вызванный поток, представленный в join() как *this не завершит свою работу. Поэтому не стоит полагаться на то, что mfence будет как внутри вызванного потока перед его завершением, так и после продолжения работы вызывающего потока. В этом и был начальный вопрос. Осталось переписать исходный код так что бы он был потокобезопасным. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2020, 03:36 |
|
Небольшой вопрос про std::thread
|
|||
---|---|---|---|
#18+
Чуть усложним алгоритм... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
Результат: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2020, 04:47 |
|
Небольшой вопрос про std::thread
|
|||
---|---|---|---|
#18+
Стабильная утрата одного из двух изменений значения Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26.
Результат: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Data race... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2020, 05:50 |
|
Небольшой вопрос про std::thread
|
|||
---|---|---|---|
#18+
rdb_dev Чуть усложним алгоритм... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Казалось бы, изменение значения "++aaa" после "std::thread th(doWork)" должно теряться, но этого не происходит. Возможно, реализация sleep_for() имеет недокументированный побочный эффект в виде барьера памяти. Создание потока далеко не бесплатная операция, если не путаю там порядка 1000-2000 тактов процессорных тратится, потому если хочешь чтобы синхронно заработал код в новом потоке - надо их синхронизировать, т.е. дождаться инициализации потока. Хотя и это не поможет, т.к. "++aaa" легкая операция, пара тактов. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2020, 08:20 |
|
Небольшой вопрос про std::thread
|
|||
---|---|---|---|
#18+
Dima T Создание потока далеко не бесплатная операция, если не путаю там порядка 1000-2000 тактов процессорных тратится, потому если хочешь чтобы синхронно заработал код в новом потоке - надо их синхронизировать, т.е. дождаться инициализации потока. Хотя и это не поможет, т.к. "++aaa" легкая операция, пара тактов. Не очень понятно почему вы рассуждаете в терминах каких-то задержек, тактов процессора и т.д. Я предлагаю рассуждать в терминах математической корректности, в терминах денег, жизней людей и личной подсудности. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2020, 09:34 |
|
Небольшой вопрос про std::thread
|
|||
---|---|---|---|
#18+
rdb_dev Чуть усложним алгоритм... volatile int aaa; Поясните плиз: зачем вы использовали volatile? Запрет на кеширование значения переменной не имеет ничего общего с потокобезопасностью. Ваш код откровенно некорректный и вы делаете из него какие-то выводы. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2020, 09:59 |
|
Небольшой вопрос про std::thread
|
|||
---|---|---|---|
#18+
rdb_dev petrav В этом и был начальный вопрос. Осталось переписать исходный код так что бы он был потокобезопасным. Так, что в голову взбредет. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2020, 10:57 |
|
Небольшой вопрос про std::thread
|
|||
---|---|---|---|
#18+
petrav mayton По первому вопросу тебе уже ответили. Я не хочу повторять про потоко-безопасность. Вопрос был безсмыслицей. Вопрос был спорным. Очень проблемным. И ты существуешь в мире где такие вопросы не существуют. В твоём мире они решены. mayton Но если я тебя лично чем то обидел - извини. Не буду сюда писать. Спасибо, лучше не писать. ТС Вопросы в топике без отсылки к документации о том что является Thread-safe являются флудом ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2020, 11:00 |
|
Небольшой вопрос про std::thread
|
|||
---|---|---|---|
#18+
petrav rdb_dev Чуть усложним алгоритм... volatile int aaa; Поясните плиз: зачем вы использовали volatile? Запрет на кеширование значения переменной не имеет ничего общего с потокобезопасностью. Ваш код откровенно некорректный и вы делаете из него какие-то выводы. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2020, 11:43 |
|
Небольшой вопрос про std::thread
|
|||
---|---|---|---|
#18+
PetroNotC Sharp ТС Вопросы в топике без отсылки к документации о том что является Thread-safe являются флудом ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2020, 12:03 |
|
Небольшой вопрос про std::thread
|
|||
---|---|---|---|
#18+
rdb_dev PetroNotC Sharp ТС Вопросы в топике без отсылки к документации о том что является Thread-safe являются флудом замечательно. Теперь осмысливаем фразу авторКод потокобезопасен, если он функционирует исправно при использовании его из нескольких потоков одновременно. и сравниваем с тем что автор ТС спрашивает? )))) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2020, 12:25 |
|
Небольшой вопрос про std::thread
|
|||
---|---|---|---|
#18+
rdb_dev, он не понимает разницы между "обособленном коде" и словом "Программа" ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2020, 12:27 |
|
Небольшой вопрос про std::thread
|
|||
---|---|---|---|
#18+
тьфу, ещё хуже - "Приложение" ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2020, 12:27 |
|
Небольшой вопрос про std::thread
|
|||
---|---|---|---|
#18+
rdb_dev, То есть если на пальцах. Гипсокартон влагоустойчив только при проверке его методом погружения во влажную среду. Куда мы погружаем "Приложение" непонятно) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2020, 12:31 |
|
Небольшой вопрос про std::thread
|
|||
---|---|---|---|
#18+
rdb_dev petrav пропущено... Поясните плиз: зачем вы использовали volatile? Запрет на кеширование значения переменной не имеет ничего общего с потокобезопасностью. Ваш код откровенно некорректный и вы делаете из него какие-то выводы. Я, конечно, прочитал это ваше сообщение. Там как раз вы и поясняете почему волотайл не имеет ничего общего с многопоточностью. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2020, 12:36 |
|
Небольшой вопрос про std::thread
|
|||
---|---|---|---|
#18+
petrav, почему же не имеет? Как раз имеет! В программе, где все значения переменных зависят только от действий логики программы в одном - основном потоке, в volatile попросту нет смысла. Зачем в однопоточной программе ставить барьер для оптимизации компилятора в отношении какой-то переменной? Бессмыслица какая-то... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2020, 13:01 |
|
Небольшой вопрос про std::thread
|
|||
---|---|---|---|
#18+
НеофитSQLДерево легче на произведение положительной разницы объемов на плотность атмосферы. Но при этом школьная формула веса это P = mg. Буква V в ней отсутствует. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2020, 13:07 |
|
Небольшой вопрос про std::thread
|
|||
---|---|---|---|
#18+
rdb_dev petrav, почему же не имеет? Как раз имеет! В программе, где все значения переменных зависят только от действий логики программы в одном - основном потоке, в volatile попросту нет смысла. Зачем в однопоточной программе ставить барьер для оптимизации компилятора в отношении какой-то переменной? Бессмыслица какая-то... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2020, 13:22 |
|
Небольшой вопрос про std::thread
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov НеофитSQLДерево легче на произведение положительной разницы объемов на плотность атмосферы. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2020, 16:23 |
|
Небольшой вопрос про std::thread
|
|||
---|---|---|---|
#18+
Определение "веса" однозначно: это сила, равная реакции опоры, но противоположная ей по направлению. В школьную формулу этой силы объём не входит. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2020, 16:26 |
|
Небольшой вопрос про std::thread
|
|||
---|---|---|---|
#18+
мои 5 коп. в тему)) речь об Архимедовой силе, в деревяшке объём больше (не знаю как в железном дереве). - А вы знаете, - сказал Остап Бендер, - на каждого из нас давит столб воздуха весом в 2 с половиной кило. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2020, 17:51 |
|
Небольшой вопрос про std::thread
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Определение "веса" однозначно: это сила, равная реакции опоры, но противоположная ей по направлению. В школьную формулу этой силы объём не входит. Воздух с одной силой выталкивает, вода с другой, можно еще в ртути попробовать утопить. Если те же вещи в вакууме проверить, то сила поменяется. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2020, 20:57 |
|
Небольшой вопрос про std::thread
|
|||
---|---|---|---|
#18+
petrav Dima T Создание потока далеко не бесплатная операция, если не путаю там порядка 1000-2000 тактов процессорных тратится, потому если хочешь чтобы синхронно заработал код в новом потоке - надо их синхронизировать, т.е. дождаться инициализации потока. Хотя и это не поможет, т.к. "++aaa" легкая операция, пара тактов. Не очень понятно почему вы рассуждаете в терминах каких-то задержек, тактов процессора и т.д. Это был маленький оффтоп для rdb_dev petrav Я предлагаю рассуждать в терминах математической корректности, в терминах денег, жизней людей и личной подсудности. Хрень какая. У каждой проги в лицензии написано "as is", в перевода на русский "кому должен всем прощаю" Стандарт С/С++ пишется с оглядкой на возможности железа, он не для сферического вакуума, поэтому в основе лежат такты и задержки, с учетом их рождаются общие правила для разных типов процессоров. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2020, 21:41 |
|
Небольшой вопрос про std::thread
|
|||
---|---|---|---|
#18+
Dima TВоздух с одной силой выталкивает, вода с другой А ещё различия в центробежной силе из-за разного положения точек тяжести. Но в пределах школьной программы это всё под плинтусом достаточной точности. Точно так же все программы в которых ничего нет между созданием потока и его завершением - однопоточны вне зависимости от того в скольких линиях кэша и ядрах процессора они обрабатываются. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2020, 22:15 |
|
|
start [/forum/topic.php?fid=57&msg=40007237&tid=2017320]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 270ms |
total: | 400ms |
0 / 0 |