mirror of
https://github.com/php/doc-ru.git
synced 2026-03-23 23:32:16 +01:00
245 lines
9.7 KiB
XML
245 lines
9.7 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<!-- EN-Revision: b4fbf4434abeca44c58575ff3967e5640f7877d5 Maintainer: rjhdby Status: ready -->
|
||
<!-- Reviewed: no -->
|
||
<reference xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude" xml:id="class.evloop" role="class">
|
||
<title>Класс EvLoop</title>
|
||
<titleabbrev>EvLoop</titleabbrev>
|
||
<partintro>
|
||
<!-- {{{ EvLoop intro -->
|
||
<section xml:id="evloop.intro">
|
||
&reftitle.intro;
|
||
<simpara>
|
||
Представляет событийный цикл, который всегда отличается
|
||
от <emphasis>цикла по умолчанию</emphasis>.
|
||
В отличие от <emphasis>цикла по умолчанию</emphasis>,
|
||
он не может работать с наблюдателями
|
||
<classname>EvChild</classname>.
|
||
</simpara>
|
||
<simpara>
|
||
Если доступна работа с потоками исполнения, то необходимо
|
||
создать цикл для каждого потока используя в качестве родителя
|
||
<emphasis>цикл по умолчанию</emphasis>.
|
||
</simpara>
|
||
<simpara>
|
||
<emphasis>Событийный цикл по умолчанию</emphasis>
|
||
инициализируется автоматически с помощью
|
||
<emphasis>Ev</emphasis>.
|
||
Он доступен через методы класса
|
||
<classname>Ev</classname> или через метод
|
||
<methodname>EvLoop::defaultLoop</methodname>.
|
||
</simpara>
|
||
</section>
|
||
<!-- }}} -->
|
||
<section xml:id="evloop.synopsis">
|
||
&reftitle.classsynopsis;
|
||
|
||
<!-- {{{ Synopsis -->
|
||
<classsynopsis>
|
||
<ooclass>
|
||
<classname>EvLoop</classname>
|
||
</ooclass>
|
||
<!-- {{{ Class synopsis -->
|
||
<classsynopsisinfo>
|
||
<ooclass>
|
||
<modifier>final</modifier>
|
||
<classname>EvLoop</classname>
|
||
</ooclass>
|
||
</classsynopsisinfo>
|
||
<!-- }}} -->
|
||
<classsynopsisinfo role="comment">&Properties;</classsynopsisinfo>
|
||
<fieldsynopsis>
|
||
<modifier>public</modifier>
|
||
<varname linkend="evloop.props.data">data</varname>
|
||
</fieldsynopsis>
|
||
<fieldsynopsis>
|
||
<modifier>public</modifier>
|
||
<varname linkend="evloop.props.backend">backend</varname>
|
||
</fieldsynopsis>
|
||
<fieldsynopsis>
|
||
<modifier>public</modifier>
|
||
<varname linkend="evloop.props.is-default-loop">is_default_loop</varname>
|
||
</fieldsynopsis>
|
||
<fieldsynopsis>
|
||
<modifier>public</modifier>
|
||
<varname linkend="evloop.props.iteration">iteration</varname>
|
||
</fieldsynopsis>
|
||
<fieldsynopsis>
|
||
<modifier>public</modifier>
|
||
<varname linkend="evloop.props.pending">pending</varname>
|
||
</fieldsynopsis>
|
||
<fieldsynopsis>
|
||
<modifier>public</modifier>
|
||
<varname linkend="evloop.props.io-interval">io_interval</varname>
|
||
</fieldsynopsis>
|
||
<fieldsynopsis>
|
||
<modifier>public</modifier>
|
||
<varname linkend="evloop.props.timeout-interval">timeout_interval</varname>
|
||
</fieldsynopsis>
|
||
<fieldsynopsis>
|
||
<modifier>public</modifier>
|
||
<varname linkend="evloop.props.depth">depth</varname>
|
||
</fieldsynopsis>
|
||
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
|
||
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.evloop')/db:refentry/db:refsect1[@role='description']/descendant::db:constructorsynopsis[not(@role='procedural')])"/>
|
||
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.evloop')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])"/>
|
||
</classsynopsis>
|
||
<!-- }}} -->
|
||
</section>
|
||
<!-- {{{ EvLoop properties -->
|
||
<section xml:id="evloop.props">
|
||
&reftitle.properties;
|
||
<variablelist>
|
||
<varlistentry xml:id="evloop.props.data">
|
||
<term>
|
||
<varname>data</varname>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
Произвольные данные, которые добавили циклу
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="evloop.props.backend">
|
||
<term>
|
||
<varname>backend</varname>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
<emphasis>Только чтение</emphasis>.
|
||
<link linkend="ev.constants.watcher-backends">Флаги бэкенда</link>,
|
||
которые указывают, какой событийный бэкенд используется.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="evloop.props.is-default-loop">
|
||
<term>
|
||
<varname>is_default_loop</varname>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
<emphasis>Только чтение</emphasis>.
|
||
Если установили значение &true;, то это цикл по умолчанию.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="evloop.props.iteration">
|
||
<term>
|
||
<varname>iteration</varname>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
Текущий счётчик итераций. Смотри
|
||
<methodname>Ev::iteration</methodname>
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="evloop.props.pending">
|
||
<term>
|
||
<varname>pending</varname>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
Количество ожидающих наблюдателей.
|
||
Значение <literal>0</literal> указывает, что
|
||
ожидающих наблюдателей нет.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="evloop.props.io-interval">
|
||
<term>
|
||
<varname>io_interval</varname>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
Более высокие значения
|
||
<varname>io_interval</varname>
|
||
разрешают
|
||
модулю <emphasis>libev</emphasis>
|
||
тратить больше времени для сбора событий
|
||
<classname>EvIo</classname>,
|
||
что позволит обработать больше событий за одну итерацию
|
||
заплатив за это увеличенными задержками.
|
||
Время ожидания (и <classname>EvPeriodic</classname>
|
||
и <classname>EvTimer</classname>) не будет затронуто.
|
||
Установка в ненулевое значение добавить дополнительный
|
||
вызов <literal>sleep()</literal> в большинство итераций цикла.
|
||
Время сна гарантирует, что
|
||
<emphasis>libev</emphasis>
|
||
не будет передавать события
|
||
<classname>EvIo</classname>
|
||
чаще, чем один раз за этот период, в среднем.
|
||
Для большинства программ хорошим значением
|
||
<varname>io_interval</varname>
|
||
будет значение около
|
||
<literal>0.1</literal>,
|
||
этого достаточно для большинства интерактивных серверов (не для игр).
|
||
Обычно разница незаметна, если установили значение
|
||
меньше <literal>0.01</literal>, поскольку
|
||
это значение будет близко к минимальному интервалу вычисляемого
|
||
времени для большинства систем.
|
||
</simpara>
|
||
<simpara>
|
||
Также читайте
|
||
<link xlink:href="http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#FUNCTIONS_CONTROLLING_EVENT_LOOPS">ФУНКЦИИ УПРАВЛЕНИЯ СОБЫТИЙНЫМИ ЦИКЛАМИ</link>.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="evloop.props.timeout-interval">
|
||
<term>
|
||
<varname>timeout_interval</varname>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
Более высокие значения
|
||
<varname>timeout_interval</varname>
|
||
позволят
|
||
<emphasis>libev</emphasis>
|
||
тратить больше времени для сбора превышенного времени ожидания за счёт увеличения
|
||
задержек, джиттеров или неточностей (callback-функция наблюдателя
|
||
будет вызвана позже).
|
||
Наблюдатели <classname>EvIo</classname> не будут затронуты.
|
||
Увеличение этого значение не вызовет перерасхода ресурсов в
|
||
<emphasis>libev</emphasis>. Также читайте
|
||
<link xlink:href="http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#FUNCTIONS_CONTROLLING_EVENT_LOOPS">ФУНКЦИИ УПРАВЛЕНИЯ СОБЫТИЙНЫМИ ЦИКЛАМИ</link>.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="evloop.props.depth">
|
||
<term>
|
||
<varname>depth</varname>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
Глубина рекурсии. Смотрите описание метода <methodname>Ev::depth</methodname>.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
</variablelist>
|
||
</section>
|
||
<!-- }}} -->
|
||
</partintro>
|
||
|
||
&reference.ev.entities.evloop;
|
||
|
||
</reference>
|
||
<!-- Keep this comment at the end of the file
|
||
Local variables:
|
||
mode: sgml
|
||
sgml-omittag:t
|
||
sgml-shorttag:t
|
||
sgml-minimize-attributes:nil
|
||
sgml-always-quote-attributes:t
|
||
sgml-indent-step:1
|
||
sgml-indent-data:t
|
||
indent-tabs-mode:nil
|
||
sgml-parent-document:nil
|
||
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
||
sgml-exposed-tags:nil
|
||
sgml-local-catalogs:nil
|
||
sgml-local-ecat-files:nil
|
||
End:
|
||
vim600: syn=xml fen fdm=syntax fdl=2 si
|
||
vim: et tw=78 syn=sgml
|
||
vi: ts=1 sw=1
|
||
-->
|