Параллельное программирование на С++ в действии. Практика разработки многопоточных программ - [198]
>swap (если таковой действительно был), ассоциируется с >*this. Асинхронный результат, который был ассоциирован с объектом >*this до вызова >swap (если таковой действительно был), ассоциируется с >other.Исключения
Нет.
>STD::PROMISE, ДЕСТРУКТОР
Уничтожает объект >std::promise.
Объявление
>~promise();
Результат
Уничтожает >*this. Если с >*this ассоциирован асинхронный результат и в этом результате не хранится задача или исключение, то результат становится готов, причем в него помещается исключение >std::future_error с кодом ошибки >std::future_errc::broken_promise.
Исключения
Нет.
>STD::PROMISE::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::PROMISE::SET_VALUE, ФУНКЦИЯ-ЧЛЕН
Сохраняет значение в асинхронном результате, ассоциированном с >*this.
Объявление
>void promise
>void promise
>void promise
>void promise
Предусловия
С >*this ассоциирован асинхронный результат.
Результат
Сохраняет >r в асинхронном результате, ассоциированном с >*this, если >ResultType — не >void.
Постусловия
Асинхронный результат, ассоциированный с >*this, готов и содержит значение. Все потоки, ожидающие асинхронного результата, разблокируются.
Исключения
Исключение типа >std::future_error с кодом ошибки >std::future_errc::promise_already_satisfied, если в асинхронном результате уже находится значение или исключение. Любое исключение, возбужденное копирующим или перемещающим конструктором >r.
Синхронизация
Обращения к >set_value(), >set_value_at_thread_exit(), >set_exception() и >set_exception_at_thread_exit() сериализуются. Успешное обращение к >set_value() происходит-раньше обращения к функции >std::future или >std::shared_future, которая извлекает сохраненное значение.
>STD::PROMISE::SET_VALUE_AT_THREAD_EXIT, ФУНКЦИЯ-ЧЛЕН
Сохраняет значение в асинхронном результате, ассоциированном с >*this, но не делает этот результат готовым раньше момента завершения потока.
Объявление
>void promise
>void promise
>void promise
>void promise
Предусловия
С >*this ассоциирован асинхронный результат.
Результат
Сохраняет >r в асинхронном результате, ассоциированном с >*this, если >ResultType — не >void. Помечает, что в асинхронном результате хранится значение. Планирует перевод ассоциированного асинхронного результата в состояние готовности в момент завершения потока.
Постусловия
Асинхронный результат, ассоциированный с >*this, содержит значение, но не является готовым до завершения текущего потока. Все потоки, ожидающие асинхронного результата, будут разблокированы, когда текущий поток завершится.
Исключения
Исключение типа >std::future_error с кодом ошибки >std::future_errc::promise_already_satisfied, если в асинхронном результате уже находится значение или исключение. Любое исключение, возбужденное копирующим или перемещающим конструктором >r.
Синхронизация
Обращения к >set_value(), >set_value_at_thread_exit(), >set_exception() и >set_exception_at_thread_exit() сериализуются. Успешное обращение к >set_value() происходит-раньше обращения к функции >std::future или >std::shared_future, которая извлекает сохраненное значение.
>STD::PROMISE::SET_EXCEPTION, ФУНКЦИЯ-ЧЛЕН КЛАССА
Сохраняет исключение в асинхронном результате, ассоциированном с >*this.
Объявление
>void set_exception(std::exception_ptr e);
Предусловия
С >*this ассоциирован асинхронный результат. >(bool)e равно >true.
Результат
Сохраняет >e в асинхронном результате, ассоциированном с >*this.
Постусловия
Асинхронный результат, ассоциированный с >*this, готов и содержит исключение. Все потоки, ожидающие асинхронного результата, разблокируются.
Исключения
Исключение типа >std::future_error с кодом ошибки >std::future_errc::promise_already_satisfied, если в асинхронном результате уже находится значение или исключение.
Синхронизация
Обращения к >set_value(), >set_value_at_thread_exit(), >set_exception() и >set_exception_at_thread_exit() сериализуются. Успешное обращение к >set_value() происходит-раньше обращения к функции >std::future или >std::shared_future, которая извлекает сохраненное исключение.
>STD::PROMISE::SET_EXCEPTION_AT_THREAD_EXIT,ФУНКЦИЯ-ЧЛЕН
Сохраняет исключение в асинхронном результате, ассоциированном с >*this, но не делает этот результат готовым раньше момента завершения потока.
Объявление
>void set_exception_at_thread_exit(std::exception_ptr e);
Предусловия
С >*this ассоциирован асинхронный результат,
Это знаменитый бестселлер, который научит вас использовать власть массового сотрудничества и покажет, как применять викиномику в вашем бизнесе. Переведенная более чем на двадцать языков и неоднократно номинированная на звание лучшей бизнес-книги, "Викиномика" стала обязательным чтением для деловых людей во всем мире. Она разъясняет, как массовое сотрудничество происходит не только на сайтах Wikipedia и YouTube, но и в традиционных компаниях, использующих технологии для того, чтобы вдохнуть новую жизнь в свои предприятия.Дон Тапскотт и Энтони Уильямс раскрывают принципы викиномики и рассказывают потрясающие истории о том, как массы людей (как за деньги, так и добровольно) создают новости, изучают геном человека, создают ремиксы любимой музыки, находят лекарства от болезней, редактируют школьные учебники, изобретают новую косметику, пишут программное обеспечение и даже строят мотоциклы.Знания, ресурсы и вычислительные способности миллиардов людей самоорганизуются и превращаются в новую значительную коллективную силу, действующую согласованно и управляемую с помощью блогов, вики, чатов, сетей равноправных партнеров и личные трансляции.
Хорошее программное обеспечение создается людьми. Так же как и плохое. Именно поэтому основная тема этой книги — не аппаратное и не программное обеспечение, а человеческий фактор в программировании (peopleware). Первое издание «Constantine on Peopleware» признано классическим трудом в области информационных технологий. Новая книга Ларри Константина включает все 52 легендарные статьи из предыдущей книги и 25 новых эссе.Peopleware охватывает все аспекты, связанные с ролью людей в разработке программного обеспечения.
Единственное официальное руководстро по практическому программированию в среде Qt 4.1.Применяя средства разработки Qt компании «Trolltech», вы сможете создавать на С++ промышленные приложения, которые естественно работают в средах Windows, Linux/UNIX, Linux для встроенных систем без изменения программного кода и Mac Os X. Книга написана сотрудниками компании «Trolltech». Она представляет собой практическое руководство по успешному применению самой мощной из всех созданных до сих пор версий Qt — Qt 4.1.Из книги «Qt 4: программирование GUI на С++» вы узнаете о наиболее эффективных приемах и методах программирования с применением Qt 4 и овладеете ключевыми технологиями в самых различных областях — от архитектуры Qt модель/представление до мощного графического процессора 2D.
Linux Kernel Module Programming Guide свободная книга; Вы можете воспроизводить и/или изменять ее в соответствии с версией 2 (или, в вашем случае, любой более поздней версией) GNU General Public License, опубликованной Free Software Foundation. Версия 2 поставляется с этим документом в Приложении E.Эта книга распространяется в надежде, что будет полезна, но без какой-либо гарантии; даже без подразумеваемой гарантии высокого спроса или пригодности какой-либо для специфической цели.Автор поощряет широкое распространение этой книги для персонального или коммерческого использования, если вышеупомянутое примечание относительно авторского права остается неповрежденным, и распространитель твердо придерживается условий GNU General Public License (см.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.