Files
godot-docs-l10n/classes/uk/class_semaphore.rst

102 lines
5.2 KiB
ReStructuredText
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

:github_url: hide
.. _class_Semaphore:
Semaphore
=========
**Успадковує:** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
Механізм синхронізації, що використовується для управління доступом до спільного ресурсу :ref:`Thread<class_Thread>`\ s.
.. rst-class:: classref-introduction-group
Опис
--------
Синхронізація semaphore, які можна використовувати для синхронізації декількох :ref:`Thread<class_Thread>`\ s. Спочатку до нуль на створення. Для бінарної версії див. :ref:`Mutex<class_Mutex>`.
\ **Навігація:** Семафори повинні бути використані ретельно, щоб уникнути відключення.
\ **Попередня:** Щоб гарантувати, що операційна система здатна виконати належне очищення (без аварійних ситуацій, не відмерллок), ці умови повинні відповідати:
- Коли довідка **Semaphore** досягає нуля, і тому знищується, не потрібно чекати на неї.
- Коли кількість посилань :ref:`Thread<class_Thread>` досягає нуля, і тому вона знищена, не варто чекати на будь-який сеймофор.
.. rst-class:: classref-introduction-group
Посібники
------------------
- :doc:`Використання кількох потоків <../tutorials/performance/using_multiple_threads>`
- :doc:`Нитка-безпечні API <../tutorials/performance/thread_safe_apis>`
.. rst-class:: classref-reftable-group
Методи
------------
.. table::
:widths: auto
+-------------------------+-----------------------------------------------------------------------------------+
| |void| | :ref:`post<class_Semaphore_method_post>`\ (\ count\: :ref:`int<class_int>` = 1\ ) |
+-------------------------+-----------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`try_wait<class_Semaphore_method_try_wait>`\ (\ ) |
+-------------------------+-----------------------------------------------------------------------------------+
| |void| | :ref:`wait<class_Semaphore_method_wait>`\ (\ ) |
+-------------------------+-----------------------------------------------------------------------------------+
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Описи методів
--------------------------
.. _class_Semaphore_method_post:
.. rst-class:: classref-method
|void| **post**\ (\ count\: :ref:`int<class_int>` = 1\ ) :ref:`🔗<class_Semaphore_method_post>`
Знижує **Semaphore**, дозволяючи один потік або більше, якщо вказано ``count``.
.. rst-class:: classref-item-separator
----
.. _class_Semaphore_method_try_wait:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **try_wait**\ (\ ) :ref:`🔗<class_Semaphore_method_try_wait>`
Як :ref:`wait()<class_Semaphore_method_wait>`, але не буде блокувати, тому якщо значення нульова, не відразу і повертається ``false``. ``true`` to report success.
.. rst-class:: classref-item-separator
----
.. _class_Semaphore_method_wait:
.. rst-class:: classref-method
|void| **wait**\ (\ ) :ref:`🔗<class_Semaphore_method_wait>`
Очікується на **Semaphore**, якщо його значення є нульовим, блокує до незеро.
.. |virtual| replace:: :abbr:`virtual (Зазвичай, цей метод перевизначається користувачем, щоб він мав вплив.)`
.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
.. |const| replace:: :abbr:`const (Цей метод не має побічних ефектів. Не змінює ніяку змінну екземпляра об'єкта.)`
.. |vararg| replace:: :abbr:`vararg (Цей метод приймає будь-яке число аргументів після описаних тут.)`
.. |constructor| replace:: :abbr:`constructor (Цей метод використовується для побудови типів.)`
.. |static| replace:: :abbr:`static (Цей метод не потребує екземпляра для виклику, його можна викликати безпосередньо за допомогою назви класу.)`
.. |operator| replace:: :abbr:`operator (Цей метод описує дійсний оператор для взаємодії з цим типом як з лівим операндом.)`
.. |bitfield| replace:: :abbr:`BitField (Це значення є цілим числом, складеним у вигляді бітової маски з наступних прапорів.)`
.. |void| replace:: :abbr:`void (Значення не повертається.)`