Параллельное программирование на С++ в действии. Практика разработки многопоточных программ - [206]
Объявление
>bool try_lock();
Предусловия
Тип >Mutex, которым конкретизируется шаблон >std::unique_lock, должен удовлетворять требованиям концепции >Lockable. >this->mutex() != NULL, >this->owns_lock() == false.
Результат
Вызывает >this->mutex ()->try_lock().
Возвращаемое значение
>true, если вызов >this->mutex()->try_lock() вернул >true, иначе >false.
Исключения
Любое исключение, возбужденное >this->mutex()->try_lock(). Исключение типа >std::system_error с кодом ошибки >std::errc::operation_not_permitted, если >this->mutex() == NULL. Исключение типа >std::system_error с кодом ошибки >std::errc::resource_deadlock_would_occur, если >this->owns_lock() == true в момент вызова.
Постусловия
Если функция возвращает >true, то >this->owns_lock() == true, иначе >this->owns_lock() == false.
>STD::UNIQUE_LOCK::UNLOCK, ФУНКЦИЯ-ЧЛЕН
Освобождает мьютекс, ассоциированный с >*this.
Объявление
>void unlock();
Предусловия
>this->mutex() != NULL, >this->owns_lock() == true.
Результат
Вызывает >this->mutex()->unlock().
Исключения
Любое исключение, возбужденное >this->mutex()->unlock(). Исключение типа >std::system_error с кодом ошибки >std::errc::operation_not_permitted, если >this->owns_lock() == false в момент вызова.
Постусловия
>this->owns_lock() == false.
>STD::UNIQUE_LOCK::TRY_LOCK_FOR, ФУНКЦИЯ-ЧЛЕН
Пытается захватить мьютекс, ассоциированный с >*this, в течение указанного времени.
Объявление
>template
>bool try_lock_for(
>std::chrono::duration
Предусловия
Тип >Mutex, которым конкретизируется шаблон >std::unique_lock, должен удовлетворять требованиям концепции >TimedLockable. >this->mutex() != NULL, >this->owns_lock() == false.
Результат
Вызывает >this->mutex ()->try_lock_for(relative_time).
Возвращаемое значение
>true, если вызов >this->mutex()->try_lock_for() вернул >true, иначе >false.
Исключения
Любое исключение, возбужденное >this->mutex()->try_lock_for(). Исключение типа >std::system_error с кодом ошибки >std::errc::operation_not_permitted, если >this->mutex() == NULL. Исключение типа >std::system_error с кодом ошибки >std::errc::resource_deadlock_would_occur, если >this->owns_lock() == true в момент вызова.
Постусловия
Если функция вернула >true, то >this->owns_lock() == true, иначе >this->owns_lock() == false.
>STD::UNIQUE_LOCK::TRY_LOCK_UNTIL, ФУНКЦИЯ-ЧЛЕН
Пытается захватить мьютекс, ассоциированный с >*this, в течение указанного времени.
Объявление
>template
>bool try_lock_until(
>std::chrono::time_point
Предусловия
Тип >Mutex, которым конкретизируется шаблон >std::unique_lock, должен удовлетворять требованиям концепции >TimedLockable. >this->mutex() != NULL, >this->owns_lock() == false.
Результат
Вызывает >this->mutex()->try_lock_until(absolute_time).
Возвращаемое значение
>true, если вызов >this->mutex()->try_lock_until() вернул >true, иначе >false.
Исключения
Любое исключение, возбужденное >this->mutex()->try_lock_until(). Исключение типа >std::system_error с кодом ошибки >std::errc::operation_not_permitted, если >this->mutex() == NULL. Исключение типа >std::system_error с кодом ошибки >std::errc::resource_deadlock_would_occur, если >this->owns_lock() == true в момент вызова.
Постусловия
Если функция вернула >true, то >this->owns_lock() == true, иначе >this->owns_lock() == false.
>STD::UNIQUE_LOCK::OPERATOR BOOL, ФУНКЦИЯ-ЧЛЕН
Проверяет, владеет ли >*this блокировкой мьютекса.
Объявление
>explicit operator bool() const noexcept;
Возвращаемое значение >this->owns_lock(). Исключения
Нет.
Примечание. Это оператор явного преобразования, поэтому он вызывается неявно только в контекстах, где результат используется как булевское значение, а не тогда, когда результат трактуется как целое, равное 0 или 1.
>STD::UNIQUE_LOCK::OWNS_LOCK, ФУНКЦИЯ-ЧЛЕН
Проверяет, владеет ли >*this блокировкой мьютекса.
Объявление
>bool owns_lock() const noexcept;
Возвращаемое значение
>true, если >*this владеет блокировкой мьютекса, иначе >false.
Исключения
Нет.
>STD::UNIQUE_LOCK::MUTEX, ФУНКЦИЯ-ЧЛЕН
Возвращает мьютекс, ассоциированный с >*this, если таковой имеется.
Объявление
>mutex_type* mutex() const noexcept;
Возвращаемое значение
Указатель на мьютекс, ассоциированный с >*this, если таковой имеется, иначе >NULL.
Исключения
Нет.
>STD::UNIQUE_LOCK::RELEASE, ФУНКЦИЯ-ЧЛЕН
Возвращает мьютекс, ассоциированный с >*this, если таковой имеется, и разрывает эту ассоциацию.
Объявление
>mutex_type* release() noexcept;
Результат
Разрывает ассоциацию мьютекса с >*this, не освобождая блокировку.
Возвращаемое значение
Указатель на мьютекс, ассоциированный с >*this, если таковой имеется, иначе >NULL.
Постусловия
>this->mutex() == NULL, >this->owns_lock() == false.
Исключения
Нет.
Примечание. Если >this->owns_lock() вернула бы до этого обращения >true, то с этого момента за освобождение мьютекса отвечает вызывающая программа.
D.5.7. Шаблон функции >std::lock
Шаблон функции >std::lock предоставляет возможность захватить сразу несколько мьютексов, не опасаясь возникновения взаимоблокировки из-за несогласованного порядка захвата.
Объявление
>template
>void lock(LockableType1& m1, LockableType2& m2...);
Это знаменитый бестселлер, который научит вас использовать власть массового сотрудничества и покажет, как применять викиномику в вашем бизнесе. Переведенная более чем на двадцать языков и неоднократно номинированная на звание лучшей бизнес-книги, "Викиномика" стала обязательным чтением для деловых людей во всем мире. Она разъясняет, как массовое сотрудничество происходит не только на сайтах Wikipedia и YouTube, но и в традиционных компаниях, использующих технологии для того, чтобы вдохнуть новую жизнь в свои предприятия.Дон Тапскотт и Энтони Уильямс раскрывают принципы викиномики и рассказывают потрясающие истории о том, как массы людей (как за деньги, так и добровольно) создают новости, изучают геном человека, создают ремиксы любимой музыки, находят лекарства от болезней, редактируют школьные учебники, изобретают новую косметику, пишут программное обеспечение и даже строят мотоциклы.Знания, ресурсы и вычислительные способности миллиардов людей самоорганизуются и превращаются в новую значительную коллективную силу, действующую согласованно и управляемую с помощью блогов, вики, чатов, сетей равноправных партнеров и личные трансляции.
В учебно-методическом пособии рассматриваются основы языка программирования PL/SQL, реализованного в системе управления базами данных Oracle Database Server. Приводятся сведения о поддерживаемых типах данных, структуре программ PL/SQL и выполнении SQL-предложений в них. Отдельно рассмотрено создание хранимых в базах данных Oracle программ PL/SQL – процедур, функций, пакетов и триггеров.
Книга известного специалиста по программированию (Югославия), содержащая основы языка Пролог и его приложения для решения задач искусственного интеллекта. Изложение отличается методическими достоинствами — книга написана в хорошем стиле, живым языком. Книга дополняет имеющуюся на русском языке литературу по языку Пролог.Для программистов разной квалификации, специалистов по искусственному интеллекту, для всех изучающих программирование.
РАССЫЛКА ЯВЛЯЕТСЯ ЧАСТЬЮ ПРОЕКТА RSDN, НА САЙТЕ КОТОРОГО ВСЕГДА МОЖНО НАЙТИ ВСЮ НЕОБХОДИМУЮ РАЗРАБОТЧИКУ ИНФОРМАЦИЮ, СТАТЬИ, ФОРУМЫ, РЕСУРСЫ, ПОЛНЫЙ АРХИВ ПРЕДЫДУЩИХ ВЫПУСКОВ РАССЫЛКИ И МНОГОЕ ДРУГОЕ.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В этой книге содержится описание базовых принципов функционирования платформы .NET, системы типов .NET и различных инструментальных средств разработки, используемых при создании приложений .NET. Представлены базовые возможности языка программирования C# 2005, включая новые синтаксические конструкции, появившиеся с выходом .NET 2.0, а также синтаксис и семантика языка CIL. В книге рассматривается формат сборок .NET, библиотеки базовых классов .NET. файловый ввод-вывод, возможности удаленного доступа, конструкция приложений Windows Forms, доступ к базам данных с помощью ADO.NET, создание Web-приложений ASP.NET и Web-служб XML.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.