-
Notifications
You must be signed in to change notification settings - Fork 79
Expand file tree
/
Copy pathrun.xml
More file actions
183 lines (174 loc) · 8.37 KB
/
Copy pathrun.xml
File metadata and controls
183 lines (174 loc) · 8.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 57c7669a1f5336cb17413e0b46540c52c77ee84f Maintainer: sergey Status: ready -->
<!-- Reviewed: no -->
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="parallel-runtime.run">
<refnamediv>
<refname>parallel\Runtime::run</refname>
<refpurpose>Выполнение</refpurpose>
</refnamediv>
<refsect1 role="description" audience="execute">
&reftitle.description;
<methodsynopsis>
<modifier>public</modifier> <type class="union"><type>Future</type><type>null</type></type><methodname>parallel\Runtime::run</methodname>
<methodparam><type>Closure</type><parameter>task</parameter></methodparam>
</methodsynopsis>
<simpara>
Планирует параллельное выполнение <parameter>task</parameter>.
</simpara>
<methodsynopsis>
<modifier>public</modifier> <type class="union"><type>Future</type><type>null</type></type><methodname>parallel\Runtime::run</methodname>
<methodparam><type>Closure</type><parameter>task</parameter></methodparam>
<methodparam><type>array</type><parameter>argv</parameter></methodparam>
</methodsynopsis>
<simpara>
Планирует параллельное выполнение <parameter>task</parameter>, передавая <parameter>argv</parameter> во время выполнения.
</simpara>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<variablelist>
<varlistentry>
<term><parameter>task</parameter></term>
<listitem>
<simpara>
Замыкание (<classname>Closure</classname>) со специфическими характеристиками.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>argv</parameter></term>
<listitem>
<simpara>
Массив (<type>array</type>) аргументов с конкретными характеристиками, которые будут переданы <parameter>task</parameter> во время выполнения.
</simpara>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 role="closure-characteristics">
<title>Характеристики задачи</title>
<para>
Замыкания, запланированные для параллельного выполнения, не должны:
<simplelist>
<member>принимать или возвращать значения по ссылке</member>
<member>принимать или возвращать внутренние объекты (смотрите примечания)</member>
<member>выполнять ограниченный набор инструкций</member>
</simplelist>
</para>
<para>
В замыканиях, предназначенных для параллельного выполнения, запрещены следующие инструкции:
<simplelist>
<member>yield</member>
<member>use by-reference</member>
<member>declare class</member>
<member>declare named function</member>
</simplelist>
</para>
<note>
<simpara>
Вложенные замыкания могут использовать yield или передачу значения по ссылке, но не должны содержать объявления классов или именованных функций.
</simpara>
</note>
<note>
<simpara>
Никакие инструкции не запрещены в файлах, которые может включать задача.
</simpara>
</note>
</refsect1>
<refsect1 role="argv-characteristics">
<title>Аргументы характеристик</title>
<para>
Аргументы не должны:
<simplelist>
<member>содержать ссылки</member>
<member>содержать ресурсы</member>
<member>содержать внутренние объекты (смотрите примечания)</member>
</simplelist>
<note>
<simpara>
В случае ресурсов файлового потока ресурс будет преобразован в файловый дескриптор и передан как целое число (<type>int</type>),
где это возможно, не поддерживается в Windows.
</simpara>
</note>
</para>
</refsect1>
<refsect1 role="object-characteristics">
<title>Примечания к внутренним объектам</title>
<simpara>
Внутренние объекты обычно используют настраиваемую структуру, которую нельзя безопасно скопировать по значению,
в PHP в настоящее время отсутствует механизм для этого (без сериализации), и поэтому могут использоваться только объекты,
которые не используют настраиваемую структуру.
</simpara>
<simpara>
Некоторые внутренние объекты не используют настраиваемую структуру, например, <classname>parallel\Events\Event</classname> и поэтому могут использоваться совместно.
</simpara>
<simpara>
Замыкания - это особый вид внутреннего объекта, который поддерживает копирование по значению, поэтому может использоваться совместно.
</simpara>
<simpara>
Каналы играют ключевую роль в написании параллельного кода и при необходимости поддерживают одновременный доступ и выполнение, поэтому могут использоваться совместно.
</simpara>
<warning>
<simpara>
Пользовательский класс, расширяющий внутренний класс, может использовать настраиваемую структуру, определённую внутренним классом,
и в этом случае они не могут быть безопасно скопированы по значению и поэтому не могут использоваться совместно.
</simpara>
</warning>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<warning>
<simpara>
Нельзя игнорировать возвращаемый <type>parallel\Future</type>, если задача содержит оператор return или throw.
</simpara>
</warning>
</refsect1>
<refsect1 role="exceptions">
<title>Исключения</title>
<warning>
<simpara>
Выбрасывает <type>parallel\Runtime\Error\Closed</type>, если <type>parallel\Runtime</type> был закрыт.
</simpara>
</warning>
<warning>
<simpara>
Выбрасывает <type>parallel\Runtime\Error\IllegalFunction</type>, если <parameter>task</parameter> является замыканием, созданным из внутренней функции.
</simpara>
</warning>
<warning>
<simpara>
Выбрасывает <type>parallel\Runtime\Error\IllegalInstruction</type>, если <parameter>task</parameter> содержит недопустимые инструкции.
</simpara>
</warning>
<warning>
<simpara>
Выбрасывает <type>parallel\Runtime\Error\IllegalParameter</type>, если <parameter>task</parameter> принимает или <parameter>argv</parameter> содержит недопустимые переменные.
</simpara>
</warning>
<warning>
<simpara>
Выбрасывает <type>parallel\Runtime\Error\IllegalReturn</type>, если <parameter>task</parameter> возвращается некорректно.
</simpara>
</warning>
</refsect1>
</refentry>
<!-- 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
-->