Параллельное программирование на С++ в действии. Практика разработки многопоточных программ - [182]
> operator BaseType() const noexcept;
>};
>template
>bool atomic_is_lock_free(
> volatile const atomic
>template
> bool atomic_is_lock_free(const atomic
> noexcept;
>template
>void atomic_init(volatile atomic
>template
>void atomic_init(atomic
>template
>BaseType atomic_exchange(
> volatile atomic
>template
>BaseType atomic_exchange(
> atomic
>template
>BaseType atomic_exchange_explicit(
> volatile atomic
>template
>BaseType atomic_exchange_explicit(
> atomic
>template
>void atomic_store(volatile atomic
>template
>void atomic_store(atomic
>template
>void atomic_store_explicit(
> volatile atomic
>template
>void atomic_store_explicit(
> atomic
>template
>BaseType atomic_load(volatile const atomic
>template
>BaseType atomic_load(const atomic
>template
>BaseType atomic_load_explicit(
> volatile const atomic
>template
>BaseType atomic_load_explicit(
> const atomic
>template
>bool atomic_compare_exchange_strong(
> volatile atomic
> BaseType * old_value, BaseType new_value) noexcept;
>template
>bool atomic_compare_exchange_strong(
> atomic
> BaseType * old_value, BaseType new_value) noexcept;
>template
>bool atomic_compare_exchange_strong_explicit(
> volatile atomic
> BaseType new_value, memory_order success_order,
> memory_order failure_order) noexcept;
>template
>bool atomic_compare_exchange_strong_explicit(
> atomic
> BaseType * old_value, BaseType new_value,
> memory_order success_order,
> memory_order failure_order) noexcept;
>template
>bool atomic_compare_exchange_weak(
> volatile atomic
> BaseType * old_value, BaseType new_value) noexcept;
>template
>bool atomic_compare_exchange_weak(
> atomic
> BaseType * old_value, BaseType new_value) noexcept;
>template
>bool atomic_compare_exchange_weak_explicit(
> volatile atomic
> BaseType * old_value, BaseType new_value,
> memory_order success_order,
> memory_order failure_order) noexcept;
>template
>bool atomic_compare_exchange_weak_explicit(
> atomic
> BaseType * old_value, BaseType new_value,
> memory_order success_order,
> memory_order failure_order) noexcept;
Примечание. Хотя функции, не являющиеся членами класса, определены как шаблоны, они могут быть предоставлены в виде набора перегруженных функций, поэтому задавать явную спецификацию аргументов шаблона не следует.
>STD::ATOMIC, КОНСТРУКТОР ПО УМОЛЧАНИЮ
Конструирует экземпляр >std::atomic со значением, инициализированным по умолчанию.
Объявление
>atomic() noexcept;
Результат
Конструирует новый объект >std::atomic со значением, инициализированным по умолчанию. Для объектов со статическим временем жизни обеспечивается статическая инициализация.
Примечание. Если время жизни объекта >std::atomic не статическое, то значение, которое будет иметь объект, инициализированный конструктором по умолчанию, непредсказуемо.
Исключения
Нет.
>STD::ATOMIC_INIT, ФУНКЦИЯ, НЕ ЯВЛЯЮЩАЯСЯ ЧЛЕНОМ КЛАССА
Неатомарно сохраняет указанное значение в объекте типа >std::atomic.
Объявление
>template
>void atomic_init(
> atomic
>template
>void atomic_init(atomic
Результат
Неатомарно сохраняет значение >v в >*p. Вызов >atomic_init() с передачей в качестве аргумента объекта >atomic, который не был сконструирован по умолчанию или над которым производились какие-нибудь операции после конструирования, является неопределенным поведением.
Примечание. Поскольку эта операция сохранения неатомарна, то одновременный доступ к объекту, на который указывает >p, из другого потока (даже с помощью атомарной операции) представляет собой гонку за данными.
Исключения
Нет.
>STD::ATOMIC, КОНВЕРТИРУЮЩИЙ КОНСТРУКТОР
Конструирует экземпляр >std::atomic из переданного значения типа >BaseType.
Объявление
>constexpr atomic(BaseType b) noexcept;
Результат
Конструирует новый объект >std::atomic из значения >b. Для объектов со статическим временем жизни обеспечивается статическая инициализация.
Исключения
Нет.
>STD::ATOMIC, КОНВЕРТИРУЮЩИЙ ОПЕРАТОР ПРИСВАИВАНИЯ
Сохраняет новое значение в >*this.
Объявление
>BaseType operator=(BaseType b) volatile noexcept;
>BaseType operator=(BaseType b) noexcept;
Результат
Это знаменитый бестселлер, который научит вас использовать власть массового сотрудничества и покажет, как применять викиномику в вашем бизнесе. Переведенная более чем на двадцать языков и неоднократно номинированная на звание лучшей бизнес-книги, "Викиномика" стала обязательным чтением для деловых людей во всем мире. Она разъясняет, как массовое сотрудничество происходит не только на сайтах Wikipedia и YouTube, но и в традиционных компаниях, использующих технологии для того, чтобы вдохнуть новую жизнь в свои предприятия.Дон Тапскотт и Энтони Уильямс раскрывают принципы викиномики и рассказывают потрясающие истории о том, как массы людей (как за деньги, так и добровольно) создают новости, изучают геном человека, создают ремиксы любимой музыки, находят лекарства от болезней, редактируют школьные учебники, изобретают новую косметику, пишут программное обеспечение и даже строят мотоциклы.Знания, ресурсы и вычислительные способности миллиардов людей самоорганизуются и превращаются в новую значительную коллективную силу, действующую согласованно и управляемую с помощью блогов, вики, чатов, сетей равноправных партнеров и личные трансляции.
Пользовательские истории – это метод описания требований к разрабатываемому продукту. В книге рассказано, как правильно использовать данную технику, чтобы сфокусироваться на поставленной задаче и пожеланиях клиента, а не распыляться на реализации второстепенных функций. Автор книги показывает, как данный подход не только ускоряет и систематизирует разработку, но и улучшает взаимопонимание в команде.
Автор книги — американский специалист по программированию, один из руководителей фирмы IBM, в своей книге делает попытку изложить общие проблемы создания программного обеспечения, его сопровождения и использования. Особенно подробно рассматриваются все фазы разработки программ разных типов. Изложение ясное, удачно иллюстрировано примерами.Для программистов разной квалификации и пользователей ЭВМ.fb2: ВНИМАНИЕ. В тексте присутствуют таблицы. Рекомендуется читать файл с помощью программы, поддерживающей их отображение.
Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В этом полном руководстве по C# 4.0 - языку программирования, разработанному специально для среды .NET, - детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в том числе PLINQ, библиотека TPL, динамический тип данных, а также именованные и необязательные аргументы.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.