Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 15.05.2016, 05:20   #11
220Volt
Форумчанин
 
Регистрация: 14.12.2012
Сообщений: 671
По умолчанию

Ну и манеры у тебя товарищ RAFA91. От собственной важности голова не кружится? Ни спасибо, ни пожалуйста. Факты ему нужны, ну так иди и читай документацию.
220Volt вне форума
Старый 15.05.2016, 07:13   #12
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,964
По умолчанию

Цитата:
Сообщение от RAFA91 Посмотреть сообщение
Доброй ночи !

Есть такая интересная ситуация.

Предположим в потоке 1 и 2 есть ссылка на внешнюю структуру.

Могут ли быть глюки при одновременном использовании этой ссылки

в потоках, если с помощью этой ссылки обращаться к разным полям

структуры из потоков?
Гльков не будет (на то они и потоки). Каждый, в определёное время, получает квант времени на выполнение. Но, бывают "казусы". Два потока пишут в переменную рандом, а третий читает (вроде там про семафоры что-то говорили). У нас так программёры прикалывались ещё в 80-х. Я тогда, совсем "зелёный" был, но это запомнил, т.к. у них ухохотайчик не детский наблюдался. Больше к этому вопросу как-то не досуг было возвращаться, просто в теме воспоминания обуяли.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума
Старый 15.05.2016, 10:03   #13
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Каждый, в определёное время, получает квант времени на выполнение.
Причем тут это? Уже давно не все процессоры одноядерные же. И не все операции атомарные.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума
Старый 15.05.2016, 11:57   #14
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Ну, если вы такой умный зачем вы у нас спрашиваете... Догадки в основном с вашей стороны...
Я ищу специалиста с которым можно обсуждать глобальные задачи

данной проблемы. Пока найти не удалось...

___________________________________ ___


Такой вопрос.

у меня общие данные для потоков лежат в в проецируемую область памяти.

В этом случае надо делать защиту от совместного обращения ?
Цитата:
Сообщение от Smitt&Wesson Посмотреть сообщение
Гльков не будет (на то они и потоки). Каждый, в определёное время, получает квант времени на выполнение. Но, бывают "казусы". Два потока пишут в переменную рандом, а третий читает (вроде там про семафоры что-то говорили). У нас так программёры прикалывались ещё в 80-х. Я тогда, совсем "зелёный" был, но это запомнил, т.к. у них ухохотайчик не детский наблюдался. Больше к этому вопросу как-то не досуг было возвращаться, просто в теме воспоминания обуяли.
вот именно так и надо отвечать....

только батенька мы дело имеем с несколькими ядрами и каждое со своим квантом.
RAFA91 вне форума
Старый 15.05.2016, 14:26   #15
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Я ищу специалиста с которым можно обсуждать глобальные задачи
данной проблемы.
пока не начнете читать ответы, мало что изменится.
Цитата:
вот именно так и надо отвечать....
вот именно его ответ и осторожно читайте, так как ситуации вида global_count++, обычно вполне стабильны(и то если global_count не long long при 32-битном процессоре) даже в куче потоков.
то вот любые сложные применения переменной(global*=2), битовые поля, структуры(при наличии временного копирования в локальные) уже легко ломаются и могут вести себя непредсказуемо без синхронизации.
(пол переменой записано от одного потока, половина от другого)
+ еще зависимость от выравнивания данных.
ну и да, все это отработает для процессора одноядерного и без HT.

и то, для ++ примера я бы предпочел InterlockedIncrement применить уж.
а для структур, битовых полей или сложного применения переменной применять защиту через примитивы синхронизации(мютекс, КС, сигналы/события)

Цитата:
В этом случае надо делать защиту от совместного обращения ?
в любом случае они в оперативке, смотрите выше, во второй цитате, зависит от того что защищаете.
простые переменные(флаги, счетчики) можно вполне не защищать или применять Interlocked функции для работы с ними.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 15.05.2016 в 14:29.
Пепел Феникса вне форума
Старый 15.05.2016, 14:32   #16
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
пока не начнете читать ответы, мало что изменится.
вот именно его ответ и осторожно читайте
его ответ я прочитал полностью , так как именно он нормально шарит

в устройстве ядра. дальше не читал - не вижу смысла !


Такой вопрос.

у меня общие данные для потоков лежат в в проецируемую область памяти.

В этом случае надо делать защиту от совместного обращения ?
RAFA91 вне форума
Старый 15.05.2016, 14:36   #17
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от RAFA91 Посмотреть сообщение
Такой вопрос.

у меня общие данные для потоков лежат в в проецируемую область памяти.

В этом случае надо делать защиту от совместного обращения ?
перечитай мой пост. там есть ответ.

Цитата:
его ответ я прочитал полностью , так как именно он нормально шарит

в устройстве ядра.
а то что он не прав вас не смущает?)
Цитата:
дальше не читал - не вижу смысла
а как раз таки дальше и есть ответ на ваш вопрос.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума
Старый 15.05.2016, 14:46   #18
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
ситуации вида global_count++, обычно вполне стабильны
Я бы с вами поспорил по этому вопросу!
waleri вне форума
Старый 15.05.2016, 14:51   #19
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Я бы с вами поспорил по этому вопросу!
я потому и написал про InterlockedIncrement, так как там есть нюансы.
размер переменной, левая пятка компилятора и прочее.
ну или современный std::atomic.

обычно...но не всегда. слишком много если.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума
Старый 15.05.2016, 14:52   #20
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Цитата:
Такой вопрос.

у меня общие данные для потоков лежат в в проецируемую область памяти.

В этом случае надо делать защиту от совместного обращения ?
Не важно где лежат данные. К защите это не имеет отношения.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Загрузка изображения или сылка на изображение xakkkkker Работа с сетью в Delphi 5 14.01.2013 23:04
Печать на обеих сторонах agregator Microsoft Office Excel 1 24.11.2010 11:03
php5 постоянная сылка на переменную 13th Свободное общение 1 13.09.2010 18:15
Сылка на внешний файл в отчете Iskin Microsoft Office Access 0 30.03.2009 08:03