Files
php-doc-ru/reference/parallel/parallel.future.xml
2024-06-14 17:02:33 +01:00

132 lines
4.2 KiB
XML
Raw 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.

<?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
-->