Spec-Zone.ru › C++

Стандартная библиотека заголовок <semaphore> (C++20)

Этот заголовок является частью библиотеки поддержки потоков.

Классы

counting_semaphore
(C++20)
семафор, который моделирует счётчик ресурсов без значений меньше нуля
(шаблон класса)
binary_semaphore
(C++20)
семафор, который имеет только два состояния
(typedef)

Синтаксис

namespace std {
  template<ptrdiff_t LeastMaxValue = /* implementation-defined */>
    class counting_semaphore;
 
  using binary_semaphore = counting_semaphore<1>;
}

Шаблон класса std::counting_semaphore

namespace std {
  template<ptrdiff_t LeastMaxValue = /* implementation-defined */>
  class counting_semaphore {
  public:
    static constexpr ptrdiff_t max() noexcept;
 
    constexpr explicit counting_semaphore(ptrdiff_t desired);
    ~counting_semaphore();
 
    counting_semaphore(const counting_semaphore&) = delete;
    counting_semaphore& operator=(const counting_semaphore&) = delete;
 
    void release(ptrdiff_t update = 1);
    void acquire();
    bool try_acquire() noexcept;
    template<class Rep, class Period>
      bool try_acquire_for(const chrono::duration<Rep, Period>& rel_time);
    template<class Clock, class Duration>
      bool try_acquire_until(const chrono::time_point<Clock, Duration>& abs_time);
 
  private:
    ptrdiff_t counter;          // exposition only
  };
}

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/header/semaphore

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API