mirror of
https://github.com/php/doc-ru.git
synced 2026-03-23 23:32:16 +01:00
pthreads : fix XML by converting para to simpara tags via script
This commit is contained in:
@@ -1,17 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 12424df3c8140290d9e5c4912cbdb260aae055f4 Maintainer: rjhdby Status: ready -->
|
||||
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: rjhdby Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<book xml:id="book.pthreads" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<book xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="book.pthreads">
|
||||
<?phpdoc extension-membership="pecl" ?>
|
||||
<title>pthreads</title>
|
||||
<titleabbrev>pthreads</titleabbrev>
|
||||
|
||||
<preface xml:id="intro.pthreads">
|
||||
&reftitle.intro;
|
||||
<para>
|
||||
<simpara>
|
||||
pthreads предоставляет объектно-ориентированный API для работы с многопоточностью в PHP.
|
||||
Приложения на PHP могут создавать, читать, записывать, запускать и выполнять синхронизацию с объектами Threads, Workers и Threaded.
|
||||
</para>
|
||||
</simpara>
|
||||
<warning>
|
||||
<simpara>
|
||||
Модуль считается неподдерживаемым и мёртвым.
|
||||
@@ -23,23 +23,23 @@
|
||||
</simpara>
|
||||
</tip>
|
||||
<warning>
|
||||
<para>
|
||||
<simpara>
|
||||
Модуль доступен только для CLI-приложений.
|
||||
Исходя из этого, многопоточность в PHP в окружении веб-сервера недоступна.
|
||||
</para>
|
||||
</simpara>
|
||||
</warning>
|
||||
<warning>
|
||||
<para>
|
||||
<simpara>
|
||||
pthreads (v3) может использоваться только с PHP 7.2 и выше, так как ZTS-режим нестабилен в 7.0 и 7.1.
|
||||
</para>
|
||||
</simpara>
|
||||
</warning>
|
||||
<para>
|
||||
<simpara>
|
||||
Класс <classname>Threaded</classname> предоставляет базовый
|
||||
функционал, необходимый для работы pthreads. Он предоставляет
|
||||
методы синхронизации и некоторые полезные для разработчика
|
||||
интерфейсы.
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
Класс <classname>Thread</classname> позволяет создавать потоки.
|
||||
Для создания потока необходимо создать наследующие его класс и
|
||||
в нём реализовать метод <literal>run</literal>.
|
||||
@@ -50,8 +50,8 @@
|
||||
метод <methodname>Thread::start</methodname> из контекста, в котором он
|
||||
был создан. Стартовать и присоединить поток можно только в том контексте,
|
||||
где он был создан.
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
Класс <classname>Worker</classname> имеет постоянное состояние и
|
||||
будет доступен из метода <methodname>Thread::start</methodname>
|
||||
(унаследованный метод) до тех пор, пока объект не выйдет из
|
||||
@@ -64,30 +64,30 @@
|
||||
будет запущен раньше, чем любой объект с его стека задач, что
|
||||
даёт возможность инициализировать необходимые для задачи
|
||||
ресурсы.
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
Класс <classname>Pool</classname> используется для создания группы
|
||||
исполнителей (worker) для распределения между ними объектов
|
||||
<classname>Threaded</classname>. Это самый простой и эффективный
|
||||
вариант использования многопоточности в PHP.
|
||||
</para>
|
||||
</simpara>
|
||||
<caution>
|
||||
<para>
|
||||
<simpara>
|
||||
Класс <classname>Pool</classname> не наследует
|
||||
<classname>Threaded</classname>, таким образом являясь обычным
|
||||
объектом PHP. Объекты этого класса не должны разделяться по различным
|
||||
контекстам.
|
||||
</para>
|
||||
</simpara>
|
||||
</caution>
|
||||
<para>
|
||||
<simpara>
|
||||
Класс <classname>Volatile</classname> добавлен в pthreads v3. Он
|
||||
используется для задания изменяемых
|
||||
<classname>Threaded</classname>-свойств классов типа
|
||||
<classname>Threaded</classname> (так как теперь они по умолчанию
|
||||
неизменяемы). Также используется для хранения массивов PHP
|
||||
в контексте <classname>Threaded</classname>.
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
Синхронизация - важная часть многопоточности. Все объекты,
|
||||
созданные pthreads, имеют встроенные методы для обеспечения
|
||||
синхронизации (они покажутся очень знакомыми для разработчиков
|
||||
@@ -98,15 +98,15 @@
|
||||
<methodname>Threaded::notify</methodname> для ожидающего объекта.
|
||||
Этот механизм позволяет осуществлять синхронизацию между
|
||||
объектами <classname>Threaded</classname>.
|
||||
</para>
|
||||
</simpara>
|
||||
<caution>
|
||||
<para>
|
||||
<simpara>
|
||||
Любые объекты вашего приложения, которые предполагается использовать
|
||||
в многопоточном режиме, должны наследовать
|
||||
<classname>Threaded</classname>.
|
||||
</para>
|
||||
</simpara>
|
||||
</caution>
|
||||
<para>
|
||||
<simpara>
|
||||
Хранение данных:
|
||||
Как правило, в объекте Threaded можно использовать любые данные,
|
||||
которые могут быть сериализованы. Они могут быть записаны и прочтены из
|
||||
@@ -120,8 +120,8 @@
|
||||
для установки свойства в Threaded-объекте отделены от ссылок внутри
|
||||
Threaded-объекте. Чтение тех же данных можно производить напрямую
|
||||
из любого контекста по ссылке на Threaded-объекте.
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
Статические свойства:
|
||||
Когда создаётся новый контекст (Thread или Worker), они просто копируются,
|
||||
но ресурсы и объекты обнуляются (из соображения безопасности). Это
|
||||
@@ -131,15 +131,15 @@
|
||||
информация необходимая для соединения, но не само соединение. Это
|
||||
позволит создать новое соединение в новом контексте и сохранить его
|
||||
в том же месте никак не затрагивая оригинальный контекст.
|
||||
</para>
|
||||
</simpara>
|
||||
<caution>
|
||||
<para>
|
||||
<simpara>
|
||||
Когда запускаются print_r, var_dump или другие отладочные функции,
|
||||
они не включают защиту от рекурсии.
|
||||
</para>
|
||||
</simpara>
|
||||
</caution>
|
||||
<note>
|
||||
<para>
|
||||
<simpara>
|
||||
Ресурсы:
|
||||
Модули и функциональность PHP, создающие ресурсы, совершенно не
|
||||
подготовлены для такого типа окружения; pthreads предоставляет
|
||||
@@ -147,13 +147,13 @@
|
||||
для большинства типов ресурсов его следует считать небезопасным.
|
||||
Разделяя ресурс между контекстами необходимо быть крайне внимательным
|
||||
и осторожным.
|
||||
</para>
|
||||
</simpara>
|
||||
</note>
|
||||
<caution>
|
||||
<para>
|
||||
<simpara>
|
||||
В окружении, где запускается pthreads, необходимы некоторые ограничения
|
||||
и запреты для обеспечения стабильности.
|
||||
</para>
|
||||
</simpara>
|
||||
</caution>
|
||||
</preface>
|
||||
|
||||
@@ -166,7 +166,8 @@
|
||||
&reference.pthreads.pool;
|
||||
&reference.pthreads.volatile;
|
||||
|
||||
</book><!-- Keep this comment at the end of the file
|
||||
</book>
|
||||
<!-- Keep this comment at the end of the file
|
||||
Local variables:
|
||||
mode: sgml
|
||||
sgml-omittag:t
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 12424df3c8140290d9e5c4912cbdb260aae055f4 Maintainer: rjhdby Status: ready -->
|
||||
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: rjhdby Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<reference xml:id="class.collectable" role="class" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
|
||||
<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.collectable" role="class">
|
||||
|
||||
<title>Интерфейс Collectable</title>
|
||||
<titleabbrev>Collectable</titleabbrev>
|
||||
@@ -10,9 +10,9 @@
|
||||
<!-- {{{ Collectable intro -->
|
||||
<section xml:id="collectable.intro">
|
||||
&reftitle.intro;
|
||||
<para>
|
||||
<simpara>
|
||||
Представляет объект, который можно собрать сборщиком мусора.
|
||||
</para>
|
||||
</simpara>
|
||||
</section>
|
||||
<!-- }}} -->
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
<!-- }}} -->
|
||||
|
||||
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
|
||||
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.collectable')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])" />
|
||||
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.collectable')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])"/>
|
||||
|
||||
</classsynopsis>
|
||||
<!-- }}} -->
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: rjhdby Status: ready -->
|
||||
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: rjhdby Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="collectable.isgarbage">
|
||||
<refnamediv>
|
||||
@@ -13,10 +13,10 @@
|
||||
<modifier>public</modifier> <type>true</type><methodname>Collectable::isGarbage</methodname>
|
||||
<void/>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
<simpara>
|
||||
Можно вызывать в <methodname>Pool::collect</methodname> для определения, является
|
||||
ли объект мусором.
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="parameters">
|
||||
@@ -26,9 +26,9 @@
|
||||
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
<simpara>
|
||||
&return.true.always;
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="changelog">
|
||||
|
||||
@@ -1,25 +1,24 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 637c29c81a694e3e9f1d6293bd7af230050e5499 Maintainer: rjhdby Status: ready -->
|
||||
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: rjhdby Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
|
||||
<section xml:id="pthreads.installation" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<section xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="pthreads.installation">
|
||||
&reftitle.install;
|
||||
|
||||
<para>
|
||||
<simpara>
|
||||
Используйте флаг <option role="configure">--enable-maintainer-zts</option> при компиляции PHP.
|
||||
</para>
|
||||
</simpara>
|
||||
|
||||
<para>
|
||||
<simpara>
|
||||
Пользователям Windows необходимо включить <filename>php_pthreads.dll</filename> в &php.ini;
|
||||
</para>
|
||||
</simpara>
|
||||
|
||||
<note>
|
||||
<para>
|
||||
<simpara>
|
||||
Для Windows также необходимо убедиться, что
|
||||
<filename>pthreadVC2.dll</filename> (входит в дистрибутив) присутствует
|
||||
в одном из каталогов, включённых в переменную окружения
|
||||
<envar>PATH</envar>.
|
||||
</para>
|
||||
</simpara>
|
||||
</note>
|
||||
|
||||
</section>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: c44e9cb68b9b65771f9c45db2c07a06c63d71359 Maintainer: rjhdby Status: ready -->
|
||||
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: rjhdby Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<reference xml:id="class.pool" role="class" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
|
||||
<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.pool" role="class">
|
||||
|
||||
<title>Класс Pool</title>
|
||||
<titleabbrev>Pool</titleabbrev>
|
||||
@@ -11,14 +11,14 @@
|
||||
<!-- {{{ Pool intro -->
|
||||
<section xml:id="pool.intro">
|
||||
&reftitle.intro;
|
||||
<para>
|
||||
<simpara>
|
||||
Объект Pool является контейнером для хранения объектов Worker, управления ими и
|
||||
регулирования их количества.
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
Контейнеризация представляет собой высший уровень абстракции над функционалом
|
||||
Worker включая управление ссылками в корректном для pthreads виде.
|
||||
</para>
|
||||
</simpara>
|
||||
</section>
|
||||
<!-- }}} -->
|
||||
|
||||
@@ -79,31 +79,31 @@
|
||||
<varlistentry xml:id="pool.props.size">
|
||||
<term><varname>size</varname></term>
|
||||
<listitem>
|
||||
<para>максимальное количество объектов Worker</para>
|
||||
<simpara>максимальное количество объектов Worker</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry xml:id="pool.props.class">
|
||||
<term><varname>class</varname></term>
|
||||
<listitem>
|
||||
<para>класс Worker</para>
|
||||
<simpara>класс Worker</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry xml:id="pool.props.workers">
|
||||
<term><varname>workers</varname></term>
|
||||
<listitem>
|
||||
<para>ссылки на объекты Worker</para>
|
||||
<simpara>ссылки на объекты Worker</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry xml:id="pool.props.ctor">
|
||||
<term><varname>ctor</varname></term>
|
||||
<listitem>
|
||||
<para>аргументы конструктора новых объектов Worker</para>
|
||||
<simpara>аргументы конструктора новых объектов Worker</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry xml:id="pool.props.last">
|
||||
<term><varname>last</varname></term>
|
||||
<listitem>
|
||||
<para>смещение последнего использованного Worker в workers</para>
|
||||
<simpara>смещение последнего использованного Worker в workers</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: sergey Status: ready -->
|
||||
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="pool.collect">
|
||||
<refnamediv>
|
||||
@@ -13,9 +13,9 @@
|
||||
<modifier>public</modifier> <type>int</type><methodname>Pool::collect</methodname>
|
||||
<methodparam choice="opt"><type>Callable</type><parameter>collector</parameter></methodparam>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
<simpara>
|
||||
Метод разрешает пулу собирать ссылки, которые определились как мусор, дополнительным сборщиком.
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="parameters">
|
||||
@@ -24,11 +24,11 @@
|
||||
<varlistentry>
|
||||
<term><parameter>collector</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
<simpara>
|
||||
Callback-функция сборщика, которая возвращает логическое значение,
|
||||
которое указывает, собирать ли задачу.
|
||||
Пользовательский сборщик требуется только в редких случаях.
|
||||
</para>
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
@@ -36,9 +36,9 @@
|
||||
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
<simpara>
|
||||
Метод возвращает количество задач в пуле, которое осталось собрать.
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="changelog">
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: sergey Status: ready -->
|
||||
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="pool.construct">
|
||||
<refnamediv>
|
||||
@@ -15,11 +15,11 @@
|
||||
<methodparam choice="opt"><type>string</type><parameter>class</parameter></methodparam>
|
||||
<methodparam choice="opt"><type>array</type><parameter>ctor</parameter></methodparam>
|
||||
</constructorsynopsis>
|
||||
<para>
|
||||
<simpara>
|
||||
Создаёт новый пул рабочих. Пулы лениво создают свои потоки, что означает,
|
||||
что новые потоки будут создаваться только тогда, когда они необходимы
|
||||
для выполнения заданий.
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="parameters">
|
||||
@@ -28,26 +28,26 @@
|
||||
<varlistentry>
|
||||
<term><parameter>size</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
<simpara>
|
||||
Максимальное количество воркеров, которое может создать этот пул
|
||||
</para>
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>class</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
<simpara>
|
||||
Класс для новых воркеров. Если класс не указан, то по умолчанию используется
|
||||
класс <classname>Worker</classname>.
|
||||
</para>
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>ctor</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
<simpara>
|
||||
Массив аргументов для передачи конструкторам новых воркерам.
|
||||
</para>
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 7febeefab69aa2920922de7adfe17724148d0b60 Maintainer: sergey Status: ready -->
|
||||
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
|
||||
<refentry xml:id="pool.resize" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="pool.resize">
|
||||
<refnamediv>
|
||||
<refname>Pool::resize</refname>
|
||||
<refpurpose>Изменяет размер пула</refpurpose>
|
||||
@@ -14,9 +13,9 @@
|
||||
<modifier>public</modifier> <type>void</type><methodname>Pool::resize</methodname>
|
||||
<methodparam><type>int</type><parameter>size</parameter></methodparam>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
<simpara>
|
||||
Изменяет размер пула
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="parameters">
|
||||
@@ -25,9 +24,9 @@
|
||||
<varlistentry>
|
||||
<term><parameter>size</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
<simpara>
|
||||
Максимальное количество воркеров, которое может создать этот пул
|
||||
</para>
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
@@ -35,9 +34,9 @@
|
||||
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
<simpara>
|
||||
&return.void;
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
</refentry>
|
||||
<!-- Keep this comment at the end of the file
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: sergey Status: ready -->
|
||||
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="pool.shutdown">
|
||||
<refnamediv>
|
||||
@@ -13,10 +13,10 @@
|
||||
<modifier>public</modifier> <type>void</type><methodname>Pool::shutdown</methodname>
|
||||
<void/>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
<simpara>
|
||||
Выключает всех воркеров в пуле. Будет заблокировано до тех пор,
|
||||
пока все отправленные задачи не будут выполнены.
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="parameters">
|
||||
@@ -26,9 +26,9 @@
|
||||
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
<simpara>
|
||||
&return.void;
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="examples">
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: sergey Status: ready -->
|
||||
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="pool.submit">
|
||||
<refnamediv>
|
||||
@@ -13,9 +13,9 @@
|
||||
<modifier>public</modifier> <type>int</type><methodname>Pool::submit</methodname>
|
||||
<methodparam><type>Threaded</type><parameter>task</parameter></methodparam>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
<simpara>
|
||||
Отправляет задание следующему воркеру в пуле
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="parameters">
|
||||
@@ -24,9 +24,9 @@
|
||||
<varlistentry>
|
||||
<term><parameter>task</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
<simpara>
|
||||
Задание для выполнения
|
||||
</para>
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
@@ -34,9 +34,9 @@
|
||||
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
<simpara>
|
||||
Идентификатор воркера, выполняющего объект
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="examples">
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: sergey Status: ready -->
|
||||
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="pool.submitTo">
|
||||
<refnamediv>
|
||||
@@ -14,11 +14,11 @@
|
||||
<methodparam><type>int</type><parameter>worker</parameter></methodparam>
|
||||
<methodparam><type>Threaded</type><parameter>task</parameter></methodparam>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
<simpara>
|
||||
Отправляет задачу указанному воркеру в пуле. Воркеры индексируются с 0
|
||||
и будут существовать только в том случае, если пулу необходимо их создать
|
||||
(поскольку потоки создаются лениво).
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="parameters">
|
||||
@@ -27,17 +27,17 @@
|
||||
<varlistentry>
|
||||
<term><parameter>worker</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
<simpara>
|
||||
Воркер, в который нужно добавить задание, начиная с <literal>0</literal>.
|
||||
</para>
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>task</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
<simpara>
|
||||
Задание для выполнения
|
||||
</para>
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
@@ -45,9 +45,9 @@
|
||||
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
<simpara>
|
||||
Идентификатор воркера, принявшего задачу.
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="examples">
|
||||
|
||||
@@ -1,45 +1,45 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 9a157412627e3f6dbadd76daaf20fb4011393a10 Maintainer: rjhdby Status: ready -->
|
||||
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: rjhdby Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<chapter xml:id="pthreads.setup" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="pthreads.setup">
|
||||
&reftitle.setup;
|
||||
|
||||
<section xml:id="pthreads.requirements">
|
||||
&reftitle.required;
|
||||
<para>
|
||||
<simpara>
|
||||
Для работы модуля pthreads требуется потокобезопасная сборка PHP с поддержкой режима ZTS (Zend Thread Safety).
|
||||
Сделать это можно при компиляции через ключ <option role="configure">--enable-zts</option>
|
||||
или на системах (кроме ОС Windows) до PHP 8.0.0 через ключ <option role="configure">--enable-maintainer-zts</option>.
|
||||
</para>
|
||||
</simpara>
|
||||
<caution>
|
||||
<para>
|
||||
<simpara>
|
||||
После компиляции потокобезопасность нельзя включить — это исключительно опция,
|
||||
которая устанавливается на этапе компиляции.
|
||||
</para>
|
||||
</simpara>
|
||||
</caution>
|
||||
<para>
|
||||
<simpara>
|
||||
Модуль pthreads можно собрать везде, где присутствуют заголовочные файлы набора интерфейсов Posix Threads (pthread.h)
|
||||
и потокобезопасная сборка PHP, включая Windows (через проект pthread-w32 из redhat).
|
||||
</para>
|
||||
</simpara>
|
||||
</section>
|
||||
|
||||
<section xml:id="pthreads.installation">
|
||||
&reftitle.install;
|
||||
<para>
|
||||
<simpara>
|
||||
Готовые сборки pthreads размещают в репозитории PECL, а исходный код
|
||||
<link xlink:href="&url.git.hub;krakjoe/pthreads">на сайте Github</link>.
|
||||
Самый простой путь — установить модуль из PECL:
|
||||
<link xlink:href="&url.pecl.package;pthreads">PECL</link>.
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
Пользователям Windows необходимо загрузить подготовленный бинарный файл с сайта
|
||||
<link xlink:href="&url.pecl.windows.releases;pthreads">PECL</link>.
|
||||
</para>
|
||||
</simpara>
|
||||
<caution>
|
||||
<para>
|
||||
<simpara>
|
||||
Пользователям Windows придётся выполнить дополнительные действия для добавления
|
||||
файла библиотеки pthreadVC2.dll (включается в релизы для Windows) в переменную <envar>PATH</envar>.
|
||||
</para>
|
||||
</simpara>
|
||||
</caution>
|
||||
</section>
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 0cb49637af4083b525809ce60057d24bc559437f Maintainer: rjhdby Status: ready -->
|
||||
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: rjhdby Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
|
||||
<reference xml:id="class.thread" role="class" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
|
||||
<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.thread" role="class">
|
||||
|
||||
<title>Класс Thread</title>
|
||||
<titleabbrev>Thread</titleabbrev>
|
||||
@@ -12,20 +11,20 @@
|
||||
<!-- {{{ Thread intro -->
|
||||
<section xml:id="thread.intro">
|
||||
&reftitle.intro;
|
||||
<para>
|
||||
<simpara>
|
||||
Когда вызван стартовый метод Thread, код метода run будет запущен в отдельном потоке,
|
||||
параллельно.
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
После отработки метода run, Thread сразу же завершит работу. Он будет присоединён путём
|
||||
создания Thread в нужное время.
|
||||
</para>
|
||||
</simpara>
|
||||
<warning>
|
||||
<para>
|
||||
<simpara>
|
||||
Если полагаться на движок для определения, когда Thread будет присоединён, можно
|
||||
столкнуться с неожиданным поведением. Поэтому необходимо, по возможности,
|
||||
управлять присоединением в явном виде.
|
||||
</para>
|
||||
</simpara>
|
||||
</warning>
|
||||
</section>
|
||||
<!-- }}} -->
|
||||
@@ -63,10 +62,10 @@
|
||||
<!-- }}} -->
|
||||
|
||||
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
|
||||
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.thread')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])" />
|
||||
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.thread')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])"/>
|
||||
|
||||
<classsynopsisinfo role="comment">&InheritedMethods;</classsynopsisinfo>
|
||||
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.threaded')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])" />
|
||||
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.threaded')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])"/>
|
||||
|
||||
</classsynopsis>
|
||||
<!-- }}} -->
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: sergey Status: ready -->
|
||||
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="thread.getcreatorid">
|
||||
<refnamediv>
|
||||
@@ -13,9 +13,9 @@
|
||||
<modifier>public</modifier> <type>int</type><methodname>Thread::getCreatorId</methodname>
|
||||
<void/>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
<simpara>
|
||||
Возвращает идентификатор потока, который создал указанный поток.
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="parameters">
|
||||
@@ -25,9 +25,9 @@
|
||||
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
<simpara>
|
||||
Числовой идентификатор.
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="examples">
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: sergey Status: ready -->
|
||||
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="thread.getcurrentthread">
|
||||
<refnamediv>
|
||||
@@ -13,9 +13,9 @@
|
||||
<modifier>public</modifier> <modifier>static</modifier> <type>Thread</type><methodname>Thread::getCurrentThread</methodname>
|
||||
<void/>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
<simpara>
|
||||
Возвращает ссылку на текущий выполняющийся поток.
|
||||
</para>
|
||||
</simpara>
|
||||
|
||||
</refsect1>
|
||||
|
||||
@@ -26,9 +26,9 @@
|
||||
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
<simpara>
|
||||
Объект, представляющий текущий выполняющийся поток.
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="examples">
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: sergey Status: ready -->
|
||||
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="thread.getcurrentthreadid">
|
||||
<refnamediv>
|
||||
@@ -13,9 +13,9 @@
|
||||
<modifier>public</modifier> <modifier>static</modifier> <type>int</type><methodname>Thread::getCurrentThreadId</methodname>
|
||||
<void/>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
<simpara>
|
||||
Возвращает идентификатор текущего выполняющегося потока.
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="parameters">
|
||||
@@ -25,9 +25,9 @@
|
||||
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
<simpara>
|
||||
Числовой идентификатор.
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="examples">
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: sergey Status: ready -->
|
||||
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="thread.getthreadid">
|
||||
<refnamediv>
|
||||
@@ -13,9 +13,9 @@
|
||||
<modifier>public</modifier> <type>int</type><methodname>Thread::getThreadId</methodname>
|
||||
<void/>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
<simpara>
|
||||
Возвращает идентификатор указанного потока
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="parameters">
|
||||
@@ -25,9 +25,9 @@
|
||||
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
<simpara>
|
||||
Числовой идентификатор.
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="examples">
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: sergey Status: ready -->
|
||||
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="thread.isjoined">
|
||||
<refnamediv>
|
||||
@@ -13,9 +13,9 @@
|
||||
<modifier>public</modifier> <type>bool</type><methodname>Thread::isJoined</methodname>
|
||||
<void/>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
<simpara>
|
||||
Сообщает, был ли присоединён указанный поток.
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="parameters">
|
||||
@@ -25,9 +25,9 @@
|
||||
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
<simpara>
|
||||
&return.success;
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="examples">
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: sergey Status: ready -->
|
||||
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="thread.isstarted">
|
||||
<refnamediv>
|
||||
@@ -13,9 +13,9 @@
|
||||
<modifier>public</modifier> <type>bool</type><methodname>Thread::isStarted</methodname>
|
||||
<void/>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
<simpara>
|
||||
Сообщает, был ли запущен указанный поток.
|
||||
</para>
|
||||
</simpara>
|
||||
|
||||
</refsect1>
|
||||
|
||||
@@ -26,9 +26,9 @@
|
||||
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
<simpara>
|
||||
&return.success;
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="examples">
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: sergey Status: ready -->
|
||||
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="thread.join">
|
||||
<refnamediv>
|
||||
@@ -13,9 +13,9 @@
|
||||
<modifier>public</modifier> <type>bool</type><methodname>Thread::join</methodname>
|
||||
<void/>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
<simpara>
|
||||
Заставляет вызывающий контекст ждать, пока указанный поток завершит выполнение.
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="parameters">
|
||||
@@ -25,9 +25,9 @@
|
||||
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
<simpara>
|
||||
&return.success;
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="examples">
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: sergey Status: ready -->
|
||||
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="thread.start">
|
||||
<refnamediv>
|
||||
@@ -13,9 +13,9 @@
|
||||
<modifier>public</modifier> <type>bool</type><methodname>Thread::start</methodname>
|
||||
<methodparam choice="opt"><type>int</type><parameter>options</parameter></methodparam>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
<simpara>
|
||||
Запускает новый поток для выполнения реализованного метода запуска.
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="parameters">
|
||||
@@ -24,9 +24,9 @@
|
||||
<varlistentry>
|
||||
<term><parameter>options</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
<simpara>
|
||||
Необязательная маска констант наследования, по умолчанию PTHREADS_INHERIT_ALL.
|
||||
</para>
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
@@ -34,9 +34,9 @@
|
||||
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
<simpara>
|
||||
&return.success;
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="examples">
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: fb726f11d0c098f3ac79e24898cb861fcc269e62 Maintainer: rjhdby Status: ready -->
|
||||
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: rjhdby Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
|
||||
<reference xml:id="class.threaded" role="class" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
|
||||
<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.threaded" role="class">
|
||||
|
||||
<title>Класс Threaded</title>
|
||||
<titleabbrev>Threaded</titleabbrev>
|
||||
@@ -12,14 +11,14 @@
|
||||
<!-- {{{ Threaded intro -->
|
||||
<section xml:id="threaded.intro">
|
||||
&reftitle.intro;
|
||||
<para>
|
||||
<simpara>
|
||||
Объекты Threaded формируют базис способности pthreads запускать пользовательский код
|
||||
в новых потоках. Класс содержит методы синхронизации и различные полезные интерфейсы.
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
Самое важное, что объекты Threaded обеспечивают безопасность для разработчика. Все
|
||||
операции в контексте объекта - безопасны.
|
||||
</para>
|
||||
</simpara>
|
||||
</section>
|
||||
<!-- }}} -->
|
||||
|
||||
@@ -55,7 +54,7 @@
|
||||
<!-- }}} -->
|
||||
|
||||
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
|
||||
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.threaded')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])" />
|
||||
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.threaded')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])"/>
|
||||
</classsynopsis>
|
||||
<!-- }}} -->
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: sergey Status: ready -->
|
||||
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="threaded.chunk">
|
||||
<refnamediv>
|
||||
@@ -14,9 +14,9 @@
|
||||
<methodparam><type>int</type><parameter>size</parameter></methodparam>
|
||||
<methodparam><type>bool</type><parameter>preserve</parameter></methodparam>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
<simpara>
|
||||
Получает фрагмент таблицы свойств объектов заданного размера, при необходимости сохраняя ключи.
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="parameters">
|
||||
@@ -25,17 +25,17 @@
|
||||
<varlistentry>
|
||||
<term><parameter>size</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
<simpara>
|
||||
Количество элементов для получения.
|
||||
</para>
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>preserve</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
<simpara>
|
||||
Сохранять ключи элементов, по умолчанию false.
|
||||
</para>
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
@@ -43,9 +43,9 @@
|
||||
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
<simpara>
|
||||
Массив элементов из таблицы свойств объектов.
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="examples">
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: sergey Status: ready -->
|
||||
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="threaded.count">
|
||||
<refnamediv>
|
||||
@@ -13,9 +13,9 @@
|
||||
<modifier>public</modifier> <type>int</type><methodname>Threaded::count</methodname>
|
||||
<void/>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
<simpara>
|
||||
Возвращает количество свойств для этого объекта.
|
||||
</para>
|
||||
</simpara>
|
||||
|
||||
</refsect1>
|
||||
|
||||
@@ -26,9 +26,9 @@
|
||||
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
<simpara>
|
||||
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="examples">
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: sergey Status: ready -->
|
||||
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="threaded.extend">
|
||||
<refnamediv>
|
||||
@@ -13,9 +13,9 @@
|
||||
<modifier>public</modifier> <type>bool</type><methodname>Threaded::extend</methodname>
|
||||
<methodparam><type>string</type><parameter>class</parameter></methodparam>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
<simpara>
|
||||
Делает потокобезопасный стандартный класс во время выполнения.
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="parameters">
|
||||
@@ -24,9 +24,9 @@
|
||||
<varlistentry>
|
||||
<term><parameter>class</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
<simpara>
|
||||
Класс для расширения.
|
||||
</para>
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
@@ -34,9 +34,9 @@
|
||||
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
<simpara>
|
||||
&return.success;
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="examples">
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: sergey Status: ready -->
|
||||
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="thread.isrunning">
|
||||
<refnamediv>
|
||||
@@ -13,9 +13,9 @@
|
||||
<modifier>public</modifier> <type>bool</type><methodname>Threaded::isRunning</methodname>
|
||||
<void/>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
<simpara>
|
||||
Сообщает, выполняется ли указанный объект.
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="parameters">
|
||||
@@ -28,9 +28,9 @@
|
||||
<para>
|
||||
Логическое значение состояния объекта.
|
||||
<note>
|
||||
<para>
|
||||
<simpara>
|
||||
Объект считается запущенным при выполнении метода run.
|
||||
</para>
|
||||
</simpara>
|
||||
</note>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: sergey Status: ready -->
|
||||
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="threaded.isterminated">
|
||||
<refnamediv>
|
||||
@@ -13,10 +13,10 @@
|
||||
<modifier>public</modifier> <type>bool</type><methodname>Threaded::isTerminated</methodname>
|
||||
<void/>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
<simpara>
|
||||
Сообщает, был ли объект, на который указывает ссылка, прекращён во время выполнения;
|
||||
произошли ли фатальные ошибки или были выброшены неперехваченные исключения.
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="parameters">
|
||||
@@ -26,9 +26,9 @@
|
||||
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
<simpara>
|
||||
Логическое значение состояния объекта.
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="examples">
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: sergey Status: ready -->
|
||||
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="threaded.merge">
|
||||
<refnamediv>
|
||||
@@ -14,9 +14,9 @@
|
||||
<methodparam><type>mixed</type><parameter>from</parameter></methodparam>
|
||||
<methodparam choice="opt"><type>bool</type><parameter>overwrite</parameter></methodparam>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
<simpara>
|
||||
Объединяет данные в текущий объект.
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="parameters">
|
||||
@@ -25,17 +25,17 @@
|
||||
<varlistentry>
|
||||
<term><parameter>from</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
<simpara>
|
||||
Данные для объединения.
|
||||
</para>
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>overwrite</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
<simpara>
|
||||
Перезаписать существующие ключи, по умолчанию true.
|
||||
</para>
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
@@ -43,9 +43,9 @@
|
||||
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
<simpara>
|
||||
&return.success;
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="examples">
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: sergey Status: ready -->
|
||||
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="threaded.notify">
|
||||
<refnamediv>
|
||||
@@ -13,9 +13,9 @@
|
||||
<modifier>public</modifier> <type>bool</type><methodname>Threaded::notify</methodname>
|
||||
<void/>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
<simpara>
|
||||
Отправляет уведомление указанному объекту.
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="parameters">
|
||||
@@ -25,9 +25,9 @@
|
||||
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
<simpara>
|
||||
&return.success;
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="examples">
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: sergey Status: ready -->
|
||||
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="threaded.notifyone">
|
||||
<refnamediv>
|
||||
@@ -13,11 +13,11 @@
|
||||
<modifier>public</modifier> <type>bool</type><methodname>Threaded::notifyOne</methodname>
|
||||
<void/>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
<simpara>
|
||||
Отправляет уведомление указанному объекту. Это разблокирует по крайней мере один
|
||||
из заблокированных потоков (в отличие от <methodname>Threaded::notify</methodname>
|
||||
с разблокировкой всех потоков).
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="parameters">
|
||||
@@ -27,9 +27,9 @@
|
||||
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
<simpara>
|
||||
&return.success;
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="examples">
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: sergey Status: ready -->
|
||||
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="threaded.pop">
|
||||
<refnamediv>
|
||||
@@ -13,9 +13,9 @@
|
||||
<modifier>public</modifier> <type>bool</type><methodname>Threaded::pop</methodname>
|
||||
<void/>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
<simpara>
|
||||
Извлекает элемент из таблицы свойств объекта.
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="parameters">
|
||||
@@ -25,9 +25,9 @@
|
||||
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
<simpara>
|
||||
Последний элемент из таблицы свойств объектов.
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="examples">
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 637c29c81a694e3e9f1d6293bd7af230050e5499 Maintainer: sergey Status: ready -->
|
||||
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<refentry xml:id="threaded.run" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="threaded.run">
|
||||
<refnamediv>
|
||||
<refname>Threaded::run</refname>
|
||||
<refpurpose>Выполнение</refpurpose>
|
||||
@@ -11,11 +11,11 @@
|
||||
&reftitle.description;
|
||||
<methodsynopsis>
|
||||
<modifier>public</modifier> <type>void</type><methodname>Threaded::run</methodname>
|
||||
<void />
|
||||
<void/>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
<simpara>
|
||||
Программист всегда должен реализовывать метод run для объектов, которые предназначены для выполнения.
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="parameters">
|
||||
@@ -25,9 +25,9 @@
|
||||
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
<simpara>
|
||||
Возвращаемое значение метода, если оно используется, будет проигнорировано.
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
</refentry>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: sergey Status: ready -->
|
||||
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="threaded.shift">
|
||||
<refnamediv>
|
||||
@@ -13,9 +13,9 @@
|
||||
<modifier>public</modifier> <type>mixed</type><methodname>Threaded::shift</methodname>
|
||||
<void/>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
<simpara>
|
||||
Перемещает элемент из таблицы свойств объекта.
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="parameters">
|
||||
@@ -25,9 +25,9 @@
|
||||
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
<simpara>
|
||||
Первый элемент из таблицы свойств объекта.
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="examples">
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: sergey Status: ready -->
|
||||
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="threaded.synchronized">
|
||||
<refnamediv>
|
||||
@@ -14,9 +14,9 @@
|
||||
<methodparam><type>Closure</type><parameter>block</parameter></methodparam>
|
||||
<methodparam rep="repeat"><type>mixed</type><parameter>args</parameter></methodparam>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
<simpara>
|
||||
Выполняет блок, сохраняя блокировку синхронизации ссылочных объектов для вызывающего контекста.
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="parameters">
|
||||
@@ -25,17 +25,17 @@
|
||||
<varlistentry>
|
||||
<term><parameter>block</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
<simpara>
|
||||
Блок кода для выполнения.
|
||||
</para>
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>args</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
<simpara>
|
||||
Список аргументов переменной длины для использования в качестве аргументов функции блока.
|
||||
</para>
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
@@ -43,9 +43,9 @@
|
||||
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
<simpara>
|
||||
Возвращаемое значение блока.
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="examples">
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: sergey Status: ready -->
|
||||
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="threaded.wait">
|
||||
<refnamediv>
|
||||
@@ -13,9 +13,9 @@
|
||||
<modifier>public</modifier> <type>bool</type><methodname>Threaded::wait</methodname>
|
||||
<methodparam choice="opt"><type>int</type><parameter>timeout</parameter></methodparam>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
<simpara>
|
||||
Заставляет вызывающий контекст ждать уведомления от указанного объекта.
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="parameters">
|
||||
@@ -24,9 +24,9 @@
|
||||
<varlistentry>
|
||||
<term><parameter>timeout</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
<simpara>
|
||||
Необязательный параметр времени ожидания в микросекундах.
|
||||
</para>
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
@@ -34,9 +34,9 @@
|
||||
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
<simpara>
|
||||
&return.success;
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="examples">
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 6d29533483657c036e49edb5ea88c7103d126681 Maintainer: rjhdby Status: ready -->
|
||||
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: rjhdby Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<reference xml:id="class.volatile" role="class" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
|
||||
<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.volatile" role="class">
|
||||
|
||||
<title>Класс Volatile</title>
|
||||
<titleabbrev>Volatile</titleabbrev>
|
||||
@@ -11,14 +11,14 @@
|
||||
<!-- {{{ Volatile intro -->
|
||||
<section xml:id="volatile.intro">
|
||||
&reftitle.intro;
|
||||
<para>
|
||||
<simpara>
|
||||
Класс <classname>Volatile</classname> появился в pthreads v3.
|
||||
Его введение является следствием новой семантики неизменности
|
||||
<classname>Threaded</classname>-свойств классов <classname>Threaded</classname>.
|
||||
Класс <classname>Volatile</classname> включает иммутабельность
|
||||
их <classname>Threaded</classname>-свойств и, также, используется для
|
||||
хранения массивов PHP в контексте <classname>Threaded</classname>.
|
||||
</para>
|
||||
</simpara>
|
||||
</section>
|
||||
<!-- }}} -->
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
|
||||
<classsynopsisinfo role="comment">&InheritedMethods;</classsynopsisinfo>
|
||||
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.threaded')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])">
|
||||
<xi:fallback />
|
||||
<xi:fallback/>
|
||||
</xi:include>
|
||||
</classsynopsis>
|
||||
<!-- }}} -->
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: da55bd31bced1b766a553d3a3d3f560f046ce48e Maintainer: rjhdby Status: ready -->
|
||||
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: rjhdby Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
|
||||
<reference xml:id="class.worker" role="class" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
|
||||
<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.worker" role="class">
|
||||
|
||||
<title>Класс Worker</title>
|
||||
<titleabbrev>Worker</titleabbrev>
|
||||
@@ -12,29 +11,29 @@
|
||||
<!-- {{{ Worker intro -->
|
||||
<section xml:id="worker.intro">
|
||||
&reftitle.intro;
|
||||
<para>
|
||||
<simpara>
|
||||
Рабочие потоки имеют постоянный контекст, поэтому в большинстве случаев их
|
||||
следует использовать поверх потоков.
|
||||
</para>
|
||||
<para>
|
||||
</simpara>
|
||||
<simpara>
|
||||
Когда Worker запущен, будет выполнен метод run, но Thread не завершится, пока не будет
|
||||
выполнено одно из следующих условий:
|
||||
</para>
|
||||
</simpara>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Worker исчезнет из области видимости (не останется ни одной ссылки на него)</para>
|
||||
<simpara>Worker исчезнет из области видимости (не останется ни одной ссылки на него)</simpara>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>программист вызовет функцию остановки</para>
|
||||
<simpara>программист вызовет функцию остановки</simpara>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>скрипт завершит работу</para>
|
||||
<simpara>скрипт завершит работу</simpara>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>
|
||||
<simpara>
|
||||
Это значит, что программист может переиспользовать контекст во время исполнения.
|
||||
Размещение объекта на стек объекта Worker приведёт к запуску метода run этого объекта.
|
||||
</para>
|
||||
</simpara>
|
||||
</section>
|
||||
<!-- }}} -->
|
||||
|
||||
@@ -71,10 +70,10 @@
|
||||
<!-- }}} -->
|
||||
|
||||
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
|
||||
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.worker')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])" />
|
||||
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.worker')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])"/>
|
||||
|
||||
<classsynopsisinfo role="comment">&InheritedMethods;</classsynopsisinfo>
|
||||
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.thread')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])" />
|
||||
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.thread')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])"/>
|
||||
|
||||
</classsynopsis>
|
||||
<!-- }}} -->
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: rjhdby Status: ready -->
|
||||
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: rjhdby Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="worker.collect">
|
||||
<refnamediv>
|
||||
@@ -13,10 +13,10 @@
|
||||
<modifier>public</modifier> <type>int</type><methodname>Worker::collect</methodname>
|
||||
<methodparam choice="opt"><type>Callable</type><parameter>collector</parameter></methodparam>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
<simpara>
|
||||
Позволяет Worker собрать "мусорные" ссылки на задачи.
|
||||
Опционально можно задать пользовательский сборщик.
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="parameters">
|
||||
@@ -25,12 +25,12 @@
|
||||
<varlistentry>
|
||||
<term><parameter>collector</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
<simpara>
|
||||
Сборщик типа Callable, который должен возвращать &true; или
|
||||
&false; в зависимости от того, можно ли собрать задачу.
|
||||
Случаи, когда вам может понадобиться собственный
|
||||
сборщик, крайне редки.
|
||||
</para>
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
@@ -38,10 +38,10 @@
|
||||
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
<simpara>
|
||||
Количество оставшихся задач в стеке Worker, которые будут
|
||||
собраны.
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="examples">
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: rjhdby Status: ready -->
|
||||
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: rjhdby Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="worker.getstacked">
|
||||
<refnamediv>
|
||||
@@ -13,9 +13,9 @@
|
||||
<modifier>public</modifier> <type>int</type><methodname>Worker::getStacked</methodname>
|
||||
<void/>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
<simpara>
|
||||
Возвращает количество задач, оставшихся в стеке.
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="parameters">
|
||||
@@ -25,10 +25,10 @@
|
||||
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
<simpara>
|
||||
Возвращает количество задач, оставшихся в стеке и ожидающих
|
||||
запуска.
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="examples">
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: rjhdby Status: ready -->
|
||||
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: rjhdby Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="worker.isshutdown">
|
||||
<refnamediv>
|
||||
@@ -13,9 +13,9 @@
|
||||
<modifier>public</modifier> <type>bool</type><methodname>Worker::isShutdown</methodname>
|
||||
<void/>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
<simpara>
|
||||
Определяет, остановлен Worker или нет.
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="parameters">
|
||||
@@ -25,9 +25,9 @@
|
||||
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
<simpara>
|
||||
&true; если остановлен и &false;, если нет.
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="examples">
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: rjhdby Status: ready -->
|
||||
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: rjhdby Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="worker.shutdown">
|
||||
<refnamediv>
|
||||
@@ -13,9 +13,9 @@
|
||||
<modifier>public</modifier> <type>bool</type><methodname>Worker::shutdown</methodname>
|
||||
<void/>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
<simpara>
|
||||
Остановить Worker после запуска всех задач со стека.
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="parameters">
|
||||
@@ -25,9 +25,9 @@
|
||||
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
<simpara>
|
||||
&return.success;
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="examples">
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: rjhdby Status: ready -->
|
||||
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: rjhdby Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="worker.stack">
|
||||
<refnamediv>
|
||||
@@ -13,9 +13,9 @@
|
||||
<modifier>public</modifier> <type>int</type><methodname>Worker::stack</methodname>
|
||||
<methodparam><type>Threaded</type><parameter role="reference">work</parameter></methodparam>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
<simpara>
|
||||
Добавляет задачу на стек заданному Worker.
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="parameters">
|
||||
@@ -24,10 +24,10 @@
|
||||
<varlistentry>
|
||||
<term><parameter>work</parameter></term>
|
||||
<listitem>
|
||||
<para>
|
||||
<simpara>
|
||||
Объект типа <classname>Threaded</classname>, который
|
||||
будет запущен Worker.
|
||||
</para>
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
@@ -35,9 +35,9 @@
|
||||
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
<simpara>
|
||||
Новый размер стека.
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="examples">
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: rjhdby Status: ready -->
|
||||
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: rjhdby Status: ready -->
|
||||
<!-- Reviewed: no -->
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="worker.unstack">
|
||||
<refnamediv>
|
||||
@@ -13,9 +13,9 @@
|
||||
<modifier>public</modifier> <type>int</type><methodname>Worker::unstack</methodname>
|
||||
<void/>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
<simpara>
|
||||
Метод убирает первую задачу — самую старую — из стека.
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="parameters">
|
||||
@@ -25,9 +25,9 @@
|
||||
|
||||
<refsect1 role="returnvalues">
|
||||
&reftitle.returnvalues;
|
||||
<para>
|
||||
<simpara>
|
||||
Новый размер стека.
|
||||
</para>
|
||||
</simpara>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 role="changelog">
|
||||
|
||||
Reference in New Issue
Block a user