Параллельное программирование на С++ в действии. Практика разработки многопоточных программ - [196]
>STD::PACKAGED_TASK, ПЕРЕМЕЩАЮЩИЙ КОНСТРУКТОР
Конструирует один объект >std::packaged_task из другого, передавая владение асинхронным результатом и задачей, ассоциированными с объектом >other, вновь сконструированному.
Объявление
>packaged_task(packaged_task&& other) noexcept;
Результат
Конструирует новый экземпляр >std::packaged_task.
Постусловия
Асинхронный результат и задача, которые были ассоциированы с объектом >other до вызова конструктора, ассоциируются со вновь сконструированным объектом >std::packaged_task. С объектом >other больше не связан никакой асинхронный результат.
Исключения
Нет.
>STD::PACKAGED_TASK, ПЕРЕМЕЩАЮЩИЙ ОПЕРАТОР ПРИСВАИВАНИЯ
Передает владение ассоциированным асинхронным результатом от одного объекта >std::packaged_task другому.
Объявление
>packaged_task& operator=(packaged_task&& other) noexcept;
Результат
Передает владение асинхронным результатом и задачей, ассоциированными с объектом >other, объекту >*this и отбрасывает ранее ассоциированный асинхронный результат, как если бы было выполнено предложение >std::packaged_task(other).swap(*this).
Постусловия
Асинхронный результат и задача, которые были ассоциированы с объектом >other до вызова перемещающего оператора присваивания, ассоциируются с >*this. С объектом >other больше не связан никакой асинхронный результат.
Возвращаемое значение
>*this
Исключения
Нет.
>STD::PACKAGED_TASK::SWAP, ФУНКЦИЯ-ЧЛЕН
Обменивает владение асинхронными результатами, ассоциированными с двумя объектами >std::packaged_task.
Объявление
>void swap(packaged_task& other) noexcept;
Результат
Обменивает владение асинхронными результатами и задачами, ассоциированными с объектами >other и >*this.
Постусловия
Асинхронный результат и задача, которые были ассоциированы с объектом >other до вызова >swap (если таковые действительно были), ассоциируются с >*this. Асинхронный результат и задача, которые были ассоциировать с объектом >*this до вызова >swap (если таковые действительно были), ассоциируются с >other.
Исключения
Нет.
>STD::PACKAGED_TASK, ДЕСТРУКТОР
Уничтожает объект >std::packaged_task.
Объявление
>~packaged_task();
Результат
Уничтожает >*this. Если с >*this ассоциирован асинхронный результат и в этом результате не хранится задача или исключение, то результат становится готов, причем в него помещается исключение >std::future_error с кодом ошибки >std::future_errc::broken_promise.
Исключения
Нет.
>STD::PACKAGED_TASK::GET_FUTURE, ФУНКЦИЯ-ЧЛЕН
Извлекает экземпляр >std::future для асинхронного результата, ассоциированного с >*this.
Объявление
>std::future
Предусловия
С >*this ассоциирован асинхронный результат.
Возвращаемое значение
Экземпляр >std::future для асинхронного результата, ассоциированного с >*this.
Исключения
Исключение типа >std::future_error с кодом ошибки >std::future_errc::future_already_retrieved, если объект >std::future уже был получен для этого асинхронного результата с помощью предшествующего обращения к >get_future().
>STD::PACKAGED_TASK::RESET, ФУНКЦИЯ-ЧЛЕН
Ассоциирует экземпляр >std::packaged_task с новым асинхронным результатом для той же задачи.
Объявление
>void reset();
Предусловия
С >*this ассоциирована асинхронная задача.
Результат
Эквивалентно >*this = packaged_task(std::move(f)), где >f ― хранимая задача, ассоциированная с >*this.
Исключения
Исключение типа >std::bad_alloc, если не удалось выделить память для нового асинхронного результата.
>STD::PACKAGED_TASK::VALID, ФУНКЦИЯ-ЧЛЕН
Проверяет, ассоциированы ли с >*this задача и асинхронный результат.
Объявление
>bool valid() const noexcept;
Возвращаемое значение
>true, если с >*this ассоциированы задача и асинхронный результат, иначе >false.
Исключения
Нет.
>STD::PACKAGED_TASK::OPERATOR(), ОПЕРАТОР ВЫЗОВА
Вызывает задачу, ассоциированную с экземпляром >std::packaged_task, и сохраняет возвращенное ей значение или исключение в ассоциированном асинхронном результате.
Объявление
>void operator()(ArgTypes... args);
Предусловия
С >*this ассоциирована задача.
Результат
Вызывает ассоциированную задачу, как если бы было выполнено предложение >INVOKE(func, args...). Если вызов завершается нормально, то сохраняет возвращенное значение в асинхронном результате, ассоциированном с >*this. Если задача возбуждает исключение, то сохраняет это исключение в асинхронном результате, ассоциированном с >*this.
Постусловия
Асинхронный результат, ассоциированный с >*this, готов и содержит значение или исключение. Все потоки, ожидающие асинхронного результата, разблокируются.
Исключения
Исключение типа >std::future_error с кодом ошибки >std::future_errc::promise_already_satisfied, если в асинхронном результате уже находится значение или исключение.
Синхронизация
Успешное обращение к оператору вызова синхронизируется-с обращением к >std::future или >std::shared_future, которое извлекает хранимое значение или исключение.
>STD::PACKAGED_TASK::MAKE_READY_AT_THREAD_EXIT, ФУНКЦИЯ-ЧЛЕН
Вызывает задачу, ассоциированную с экземпляром >std::packaged_task, и сохраняет возвращенное ей значение или исключение в ассоциированном асинхронном результате, но не делает этот результат готовым раньше момента завершения потока.
Это знаменитый бестселлер, который научит вас использовать власть массового сотрудничества и покажет, как применять викиномику в вашем бизнесе. Переведенная более чем на двадцать языков и неоднократно номинированная на звание лучшей бизнес-книги, "Викиномика" стала обязательным чтением для деловых людей во всем мире. Она разъясняет, как массовое сотрудничество происходит не только на сайтах Wikipedia и YouTube, но и в традиционных компаниях, использующих технологии для того, чтобы вдохнуть новую жизнь в свои предприятия.Дон Тапскотт и Энтони Уильямс раскрывают принципы викиномики и рассказывают потрясающие истории о том, как массы людей (как за деньги, так и добровольно) создают новости, изучают геном человека, создают ремиксы любимой музыки, находят лекарства от болезней, редактируют школьные учебники, изобретают новую косметику, пишут программное обеспечение и даже строят мотоциклы.Знания, ресурсы и вычислительные способности миллиардов людей самоорганизуются и превращаются в новую значительную коллективную силу, действующую согласованно и управляемую с помощью блогов, вики, чатов, сетей равноправных партнеров и личные трансляции.
Вниманию читателей предлагается справочник по PHP.Справочник предназначается для людей, уже освоивших азы программирования на языке PHP.Справочник создан на основе информации, предоставленной на сайте «Справочник Web-языков» www.spravkaweb.ru.
Эта книга поможет новичку стать профессионалом, так как в ней представлен сконцентрированный лучший опыт программистов на С++, обобщенный двумя экспертами мирового класса.Начинающий программист найдет в ней простые и понятные рекомендации для ежедневного использования, подкрепленные примерами их конкретного применения на практике.Опытные программисты найдут в ней советы и новые рекомендации, которые можно сразу же принять на вооружение. Программисты-профессионалы могут использовать эту книгу как основу для разработки собственных стандартов кодирования, как для себя лично, так и для группы, которой они руководят.Конечно, книга рассчитана в первую очередь на профессиональных программистов с глубокими знаниями языка, однако она будет полезна любому, кто захочет углубить свои знания в данной области.
Цель книги – познакомить читателей с существующими подходами и решениями в области моделирования бизнес-архитектуры предприятия. В книге освещаются различные аспекты данной проблематики, в том числе такие вопросы как базовые подходы к моделированию и возможности современных инструментальных средств.Особое внимание уделяется специфике организации проектов по разработке моделей бизнес-архитекуры. На основе практического опыта реализации проектов по моделированию бизнес-процессов в различных предметных областях проанализированы и обобщены типичные риски, ошибки и заблуждения основных участников, даны рекомендации по их предупреждению.
В книге широко представлены возможности новейшей версии программного продукта Microsoft Visual C++. Подробно описаны средства и подходы программирования современных профессиональных приложений. Материалы книги дополнены многочисленными демонстрационными программами, в процессе разработки которых максимально используются возможности программных инструментов Microsoft Visual Studio. Особое внимание уделено новинкам версии 6.0 и новейшим технологиям объектно-ориентированного программирования, включая использование библиотеки MFC и шаблонов классов, а также создание связанных списков.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.