Namespaces
Variants

Standard library header <semaphore> (C++20)

From cppreference.net
Standard library headers

Dieser Header ist Teil der Thread-Unterstützungsbibliothek .

Klassen

Semaphor, der einen nicht-negativen Ressourcenzähler modelliert
(Klassentemplate)
Semaphor, der nur zwei Zustände hat
(Typdefinition)

Übersicht

namespace std {
  template<ptrdiff_t LeastMaxValue = /* implementation-defined */>
    class counting_semaphore;
  using binary_semaphore = counting_semaphore<1>;
}
**Erklärung:** - HTML-Tags und Attribute wurden unverändert beibehalten - Der Code innerhalb der `
`-Tags wurde nicht übersetzt
- C++-spezifische Begriffe wie `namespace`, `template`, `class`, `counting_semaphore`, `binary_semaphore` etc. wurden nicht übersetzt
- Die Struktur und Formatierung des Originalcodes bleibt vollständig erhalten

Klassentemplate std::counting_semaphore

namespace std {
  template<ptrdiff_t LeastMaxValue = /* implementierungsdefiniert */>
  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;          // nur zur Darstellung
  };
}