mirror of
https://github.com/php/doc-ru.git
synced 2025-08-20 23:31:15 +00:00
132 lines
4.2 KiB
XML
132 lines
4.2 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<!-- EN-Revision: a31156c3d8e98d9d8d0d82cab7e37407a4f75f63 Maintainer: sergey Status: ready -->
|
||
<!-- Reviewed: no -->
|
||
<reference xml:id="class.parallel-future" role="class" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
|
||
|
||
<title>Класс parallel\Future</title>
|
||
<titleabbrev>parallel\Future</titleabbrev>
|
||
|
||
<partintro>
|
||
|
||
<section>
|
||
<title>Объекты Future</title>
|
||
<para>
|
||
Future представляет возвращаемое значение или неперехваченное исключение из задачи и предоставляет API для отмены.
|
||
</para>
|
||
<example>
|
||
<title>Пример, показывающий Future как возвращаемое значение</title>
|
||
<programlisting role="php">
|
||
<![CDATA[
|
||
<?php
|
||
$runtime = new \parallel\Runtime;
|
||
$future = $runtime->run(function(){
|
||
return "Мир";
|
||
});
|
||
printf("Привет, %s\n", $future->value());
|
||
?>
|
||
]]>
|
||
</programlisting>
|
||
&example.outputs.similar;
|
||
<screen>
|
||
<![CDATA[
|
||
Привет, Мир
|
||
]]>
|
||
</screen>
|
||
</example>
|
||
<para>
|
||
Поведение Future также позволяет использовать его в качестве простой точки синхронизации,
|
||
даже если задача не возвращает значение явно.
|
||
</para>
|
||
<example>
|
||
<title>Пример, показывающий Future как точку синхронизации</title>
|
||
<programlisting role="php">
|
||
<![CDATA[
|
||
<?php
|
||
$runtime = new \parallel\Runtime;
|
||
$future = $runtime->run(function(){
|
||
echo "в дочернем потоке ";
|
||
for ($i = 0; $i < 500; $i++) {
|
||
if ($i % 10 == 0) {
|
||
echo ".";
|
||
}
|
||
}
|
||
echo " выход из дочернего потока";
|
||
});
|
||
|
||
$future->value();
|
||
echo "\nродительский поток продолжает работать\n";
|
||
?>
|
||
]]>
|
||
</programlisting>
|
||
&example.outputs.similar;
|
||
<screen>
|
||
<![CDATA[
|
||
в дочернем потоке .................................................. выход из дочернего потока
|
||
родительский поток продолжает работать
|
||
]]>
|
||
</screen>
|
||
</example>
|
||
</section>
|
||
|
||
<section xml:id="parallel-future.synopsis">
|
||
&reftitle.classsynopsis;
|
||
|
||
<!-- {{{ Synopsis -->
|
||
<classsynopsis>
|
||
<ooclass><classname>parallel\Future</classname></ooclass>
|
||
|
||
<!-- {{{ Class synopsis -->
|
||
<classsynopsisinfo>
|
||
<ooclass>
|
||
<modifier>final</modifier>
|
||
<classname>parallel\Future</classname>
|
||
</ooclass>
|
||
</classsynopsisinfo>
|
||
<!-- }}} -->
|
||
|
||
<classsynopsisinfo role="comment">Разрешение</classsynopsisinfo>
|
||
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.parallel-future')/db:refentry/db:refsect1[@audience='resolution']/descendant::db:methodsynopsis[not(@role='procedural')])">
|
||
<xi:fallback />
|
||
</xi:include>
|
||
|
||
<classsynopsisinfo role="comment">Состояние</classsynopsisinfo>
|
||
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.parallel-future')/db:refentry/db:refsect1[@audience='state']/descendant::db:methodsynopsis[not(@role='procedural')])">
|
||
<xi:fallback />
|
||
</xi:include>
|
||
|
||
<classsynopsisinfo role="comment">Отмена</classsynopsisinfo>
|
||
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.parallel-future')/db:refentry/db:refsect1[@audience='cancellation']/descendant::db:methodsynopsis[not(@role='procedural')])">
|
||
<xi:fallback />
|
||
</xi:include>
|
||
|
||
</classsynopsis>
|
||
<!-- }}} -->
|
||
|
||
</section>
|
||
|
||
</partintro>
|
||
|
||
&reference.parallel.parallel.entities.future;
|
||
|
||
</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
|
||
-->
|