Параллельное программирование на С++ в действии. Практика разработки многопоточных программ - [194]
>std::shared_future.Объявление
>shared_future(std::future
Результат
Конструирует новый экземпляр >std::shared_future.
Постусловия
Асинхронный результат, ассоциированный с объектом other перед вызовом конструктора, ассоциируется с вновь сконструированным объектом >std::shared_future. С объектом >other больше не ассоциирован никакой асинхронный результат.
Исключения
Нет.
>STD::SHARED_FUTURE, КОПИРУЮЩИЙ КОНСТРУКТОР
Конструирует один объект >std::shared_future из другого, так что исходный объект и копия ссылаются на асинхронный результат, ассоциированный с исходным объектом >std::shared_future, если таковой был.
Объявление
>shared_future(shared_future const& other);
Результат
Конструирует новый экземпляр >std::shared_future.
Постусловия
Асинхронный результат, ранее ассоциированный с объектом >other перед вызовом конструктора, теперь ассоциирован как с вновь сконструированным объектом >std::shared_future, так и с объектом >other.
Исключения
Нет.
>STD::SHARED_FUTURE, ДЕСТРУКТОР
Уничтожает объект >std::shared_future.
Объявление
>~shared_future();
Результат
Уничтожает >*this. Если больше не существует объекта >std::promise или >std::packaged_task, ассоциированного с асинхронным результатом, который ассоциирован с >*this, и это последний экземпляр >std::shared_future, ассоциированный с этим асинхронным результатом, то асинхронный результат уничтожается.
Исключения
Нет.
>STD::SHARED_FUTURE::VALID, ФУНКЦИЯ-ЧЛЕН
Проверяет, ассоциирован ли асинхронный результат с данным экземпляром >std::shared_future.
Объявление
>bool valid() const noexcept;
Возвращаемое значение
>true, если с >*this ассоциирован асинхронный результат, иначе >false.
Исключения
Нет.
>STD::SHARED_FUTURE::WAIT, ФУНКЦИЯ-ЧЛЕН
Если состояние, ассоциированное с >*this, содержит отложенную функцию, то эта функция вызывается. В противном случае ждет, когда будет готов асинхронный результат, ассоциированный с данным экземпляром >std::shared_future.
Объявление
>void wait() const;
Предусловия
>this->valid() должна возвращать >true.
Результат
Обращения из нескольких потоков к функциям >get() и >wait() экземпляров >std::shared_future, разделяющих одно и то же ассоциированное состояние, сериализуются. Если ассоциированное состояние содержит отложенную функцию, то первое обращение к >get() или >wait() приводит к вызову этой функции и сохранению возвращенного ей значения или возбужденного ей исключения в асинхронном результате. Блокирует поток, пока не будет готов асинхронный результат, ассоциированный с >*this.
Исключения
Нет.
>STD::SHARED_FUTURE::WAIT_FOR, ФУНКЦИЯ-ЧЛЕН
Ждет, когда будет готов асинхронный результат, ассоциированный с данным экземпляром >std::shared_future, или истечет заданное время.
Объявление
>template
>future_status wait_for(
>std::chrono::duration
Предусловия
>this->valid() должно возвращать >true.
Результат
Если асинхронный результат, ассоциированный с >*this, содержит отложенную функцию, полученную обращением к >std::async, и эта функция, еще не начала исполняться, то возвращает управление немедленно без блокирования потока. В противном случае блокирует поток до момента готовности асинхронного результата, ассоциированного с >*this, или до истечения времени, заданного в аргументе >relative_time.
Возвращаемое значение
>std::future_status::deferred, если асинхронный результат, ассоциированный с >*this, содержит отложенную функцию, полученную обращением к >std::async, и эта функция, еще не начала исполняться. >std::future_status::ready, если асинхронный результат, ассоциированный с >*this, готов, >std::future_status::timeout, если истекло время, заданное в аргументе >relative_time.
Примечание. Поток может быть заблокирован на время, превышающее указанное. Если возможно, время измеряется по стабильным часам.
Исключения
Нет.
>STD::SHARED_FUTURE::WAIT_UNTIL, ФУНКЦИЯ-ЧЛЕН
Ждет, когда будет готов асинхронный результат, ассоциированный с данным экземпляром >std::shared_future, или наступит заданный момент времени.
Объявление
>template
>bool wait_until(
>std::chrono::time_point
Предусловия
>this->valid() должно возвращать >true.
Результат
Если асинхронный результат, ассоциированный с >*this, содержит отложенную функцию, полученную обращением к >std::async, и эта функция, еще не начала исполняться, то возвращает управление немедленно без блокирования потока. В противном случае блокирует поток до момента готовности асинхронного результата, ассоциированного с >*this, или до момента, когда функция >Clock::now() вернет время, большее или равное >absolute_time.
Возвращаемое значение
>std::future_status::deferred, если асинхронный результат, ассоциированный с >*this, содержит отложенную функцию, полученную обращением к >std::async, и эта функция, еще не начала исполняться. >std::future_status::ready, если асинхронный результат, ассоциированный с >*this, готов, >std::future_status::timeout, если >Clock::now() вернула время, большее или равное a>bsolute_time.
Примечание. Не дается никаких гарантий относительно того, сколько времени будет блокирован вызывающий поток. Гарантируется лишь, что если функция вернула
Это знаменитый бестселлер, который научит вас использовать власть массового сотрудничества и покажет, как применять викиномику в вашем бизнесе. Переведенная более чем на двадцать языков и неоднократно номинированная на звание лучшей бизнес-книги, "Викиномика" стала обязательным чтением для деловых людей во всем мире. Она разъясняет, как массовое сотрудничество происходит не только на сайтах Wikipedia и YouTube, но и в традиционных компаниях, использующих технологии для того, чтобы вдохнуть новую жизнь в свои предприятия.Дон Тапскотт и Энтони Уильямс раскрывают принципы викиномики и рассказывают потрясающие истории о том, как массы людей (как за деньги, так и добровольно) создают новости, изучают геном человека, создают ремиксы любимой музыки, находят лекарства от болезней, редактируют школьные учебники, изобретают новую косметику, пишут программное обеспечение и даже строят мотоциклы.Знания, ресурсы и вычислительные способности миллиардов людей самоорганизуются и превращаются в новую значительную коллективную силу, действующую согласованно и управляемую с помощью блогов, вики, чатов, сетей равноправных партнеров и личные трансляции.
Вниманию читателей предлагается справочник по PHP.Справочник предназначается для людей, уже освоивших азы программирования на языке PHP.Справочник создан на основе информации, предоставленной на сайте «Справочник Web-языков» www.spravkaweb.ru.
Эта книга поможет новичку стать профессионалом, так как в ней представлен сконцентрированный лучший опыт программистов на С++, обобщенный двумя экспертами мирового класса.Начинающий программист найдет в ней простые и понятные рекомендации для ежедневного использования, подкрепленные примерами их конкретного применения на практике.Опытные программисты найдут в ней советы и новые рекомендации, которые можно сразу же принять на вооружение. Программисты-профессионалы могут использовать эту книгу как основу для разработки собственных стандартов кодирования, как для себя лично, так и для группы, которой они руководят.Конечно, книга рассчитана в первую очередь на профессиональных программистов с глубокими знаниями языка, однако она будет полезна любому, кто захочет углубить свои знания в данной области.
Цель книги – познакомить читателей с существующими подходами и решениями в области моделирования бизнес-архитектуры предприятия. В книге освещаются различные аспекты данной проблематики, в том числе такие вопросы как базовые подходы к моделированию и возможности современных инструментальных средств.Особое внимание уделяется специфике организации проектов по разработке моделей бизнес-архитекуры. На основе практического опыта реализации проектов по моделированию бизнес-процессов в различных предметных областях проанализированы и обобщены типичные риски, ошибки и заблуждения основных участников, даны рекомендации по их предупреждению.
В книге широко представлены возможности новейшей версии программного продукта Microsoft Visual C++. Подробно описаны средства и подходы программирования современных профессиональных приложений. Материалы книги дополнены многочисленными демонстрационными программами, в процессе разработки которых максимально используются возможности программных инструментов Microsoft Visual Studio. Особое внимание уделено новинкам версии 6.0 и новейшим технологиям объектно-ориентированного программирования, включая использование библиотеки MFC и шаблонов классов, а также создание связанных списков.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.