Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Здесь нужно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

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

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

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

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

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

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

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

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

Цитата:
Каждый, в определёное время, получает квант времени на выполнение.
Причем тут это? Уже давно не все процессоры одноядерные же. И не все операции атомарные.
Alex11223 на форуме  
Старый 15.05.2016, 12:57   #14
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

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

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

___________________________________ ___


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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


11:12.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.