Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Knjagskij
-4 / 6 / 0
Регистрация: 10.11.2008
Сообщений: 774
Завершенные тесты: 1
#1

Копирование объекта в поток - C++

16.06.2016, 11:40. Просмотров 129. Ответов 12
Метки нет (Все метки)

"Переданный объект-функция копируется в память, принадлежащую только что созданному потоку выполнения, и оттуда вызывается. Поэтому необходимо, чтобы с точки зрения поведения копия была эквивалентна оригиналу, иначе можно получить неожиданный результат." Энтони Уильямс. Параллельное программирование на С++ в действии. стр 44

А в каком случае копия может не быть эквивалентна оригиналу?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.06.2016, 11:40     Копирование объекта в поток
Посмотрите здесь:

Перемещение объекта в отдельный поток - C++
Добрый день. В общем задался вопросом, как переместить какой-то объект/указатель на объект в отдельный поток? Пока сталкивался только с...

Копирование из временного объекта - C++
1) Собственно, как работает такой конструктор? Хотелось бы какой-нибудь пример. 2) Сильно ли различаются по скорости new/notthrow...

Копирование объекта в вектор - C++
Пишу граф. движок, но проблема скорее всего не с opengl. Возникла проблема с анимированной текстурой, вернее с её копией. Оригинал работает...

Копирование объекта из бинарного файла - C++
Привет всем. Вот код мэйн: int _tmain(int argc, _TCHAR* argv) { Matrix obj1; Matrix obj2; obj1.setMatrix(); ...

Зачем нужен конструктор объекта ostringstream (строковый поток который) с двумя аргументами? - C++
От него всё равно толку как от быка молока. А вроде как предназначен для записи чего-то там в строку... #include <string> #include...

Как лучше запретить копирование объекта? - C++
Есть класс, надо запретить копирование его экземпляров. Можно как то сделать, чтоб в интерфейсе класса вообще не было конструктора копии и...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
5107 / 4427 / 1473
Регистрация: 14.04.2014
Сообщений: 17,546
16.06.2016, 11:49     Копирование объекта в поток #2
А то, что функция копируется, тебя не смущает? Впервые о таком слышу.
Knjagskij
-4 / 6 / 0
Регистрация: 10.11.2008
Сообщений: 774
Завершенные тесты: 1
16.06.2016, 11:51  [ТС]     Копирование объекта в поток #3
Объект с переопределенным оператором operator()(params)

Добавлено через 50 секунд
Наверное временные объекты и указатели можно под эту цитату подвести, но может можно еще какие-нибудь примеры привести
nmcf
5107 / 4427 / 1473
Регистрация: 14.04.2014
Сообщений: 17,546
16.06.2016, 11:51     Копирование объекта в поток #4
И что? Программам вроде как запретили манипулировать собственным кодом.
Knjagskij
-4 / 6 / 0
Регистрация: 10.11.2008
Сообщений: 774
Завершенные тесты: 1
16.06.2016, 11:52  [ТС]     Копирование объекта в поток #5
Цитата Сообщение от nmcf Посмотреть сообщение
И что? Программам вроде как запретили манипулировать собственным кодом.
Что значит запретили манипулировать собственным кодом и когда?
nmcf
5107 / 4427 / 1473
Регистрация: 14.04.2014
Сообщений: 17,546
16.06.2016, 12:01     Копирование объекта в поток #6
Когда придумали многозадачность и стали бороться с вирусами.
Функция в памяти хранится в одном экземпляре, если её вызывают параллельно, то будет свой стек для каждого потока.
О копировании тела функции слышу впервые.
Knjagskij
-4 / 6 / 0
Регистрация: 10.11.2008
Сообщений: 774
Завершенные тесты: 1
16.06.2016, 13:33  [ТС]     Копирование объекта в поток #7
А если убрать слово "функция" и оставить только "объект", то как можно трактовать это высказывание?
nmcf
5107 / 4427 / 1473
Регистрация: 14.04.2014
Сообщений: 17,546
16.06.2016, 13:35     Копирование объекта в поток #8
Ну что у потока своя копия.
Knjagskij
-4 / 6 / 0
Регистрация: 10.11.2008
Сообщений: 774
Завершенные тесты: 1
16.06.2016, 13:37  [ТС]     Копирование объекта в поток #9
А как копия может не соответствовать оригиналу? Только если мы криво оператор копирования переопределили? Или здесь о другом речь?
avgoor
884 / 519 / 112
Регистрация: 05.12.2015
Сообщений: 1,464
16.06.2016, 13:39     Копирование объекта в поток #10
Цитата Сообщение от nmcf Посмотреть сообщение
Программам вроде как запретили манипулировать собственным кодом.
Не запретили. Просто по умолчанию для страниц с кодом нет прав на запись. Если бы совсем запретили - вся защита от копирования отвалилась бы. Кроме того, что можно при компиляции назначить секции права на запись, можно еще ловить PAGEFAULT, итд.
Но к вопросу ТС это не имеет отношения. Там, скорее всего, имеются в виду функциональные объекты / адаптеры и об их копировании речь и идет.
nmcf
5107 / 4427 / 1473
Регистрация: 14.04.2014
Сообщений: 17,546
16.06.2016, 13:40     Копирование объекта в поток #11
Цитата Сообщение от avgoor Посмотреть сообщение
Просто по умолчанию для страниц с кодом нет прав на запись. Если бы совсем запретили - вся защита от копирования отвалилась бы.
И как оно включается?
avgoor
884 / 519 / 112
Регистрация: 05.12.2015
Сообщений: 1,464
16.06.2016, 13:54     Копирование объекта в поток #12
Цитата Сообщение от nmcf Посмотреть сообщение
И как оно включается?
В VS - /SECTION:.text,W
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.06.2016, 14:02     Копирование объекта в поток
Еще ссылки по теме:

Передача объекта методу другого объекта другого класса - C++
Всем привет. Есть у меня класс test1, который имеет конструкторы только с параметрами. Другой класс test2 имеет конструктор, который...

Очистить поток - C++
Хотел с помощью куска кода (см.ниже) очистить буфер связанный с потоком cin. Но выражение в скобках по какой-то причине не изменяется? ...

поток (stream) - C++
расскажите подробно про работу потока

Поток и принтер - C++
1. Имеет ли дефолтный принтер стандартный поток? Если имеет, то как его зовут? Надо ли его открывать/закрывать? 2. Можно ли к дефольному...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Knjagskij
-4 / 6 / 0
Регистрация: 10.11.2008
Сообщений: 774
Завершенные тесты: 1
16.06.2016, 14:02  [ТС]     Копирование объекта в поток #13
Цитата Сообщение от avgoor Посмотреть сообщение
Там, скорее всего, имеются в виду функциональные объекты / адаптеры и об их копировании речь и идет.
Да, объекты с перегруженным оператором operator()()
Yandex
Объявления
16.06.2016, 14:02     Копирование объекта в поток
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru