<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/class.parallel-runtime.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'es',
  ),
  'this' => 
  array (
    0 => 'parallel-runtime.run.php',
    1 => 'parallel\\Runtime::run',
    2 => 'Ejecuci&oacute;n',
  ),
  'up' => 
  array (
    0 => 'class.parallel-runtime.php',
    1 => 'parallel\\Runtime',
  ),
  'prev' => 
  array (
    0 => 'parallel-runtime.construct.php',
    1 => 'parallel\\Runtime::__construct',
  ),
  'next' => 
  array (
    0 => 'parallel-runtime.close.php',
    1 => 'parallel\\Runtime::close',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    'path' => 'reference/parallel/parallel/runtime/run.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="parallel-runtime.run" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">parallel\Runtime::run</h1>
  <p class="verinfo">(0.8.0)</p><p class="refpurpose"><span class="refname">parallel\Runtime::run</span> &mdash; <span class="dc-title">Ejecución</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-parallel-runtime.run-description">
  <h3 class="title">Descripción</h3>
  <div class="methodsynopsis dc-description">
   <span class="modifier">public</span> <span class="methodname"><strong>parallel\Runtime::run</strong></span>(<span class="methodparam"><span class="type"><a href="class.closure.php" class="type Closure">Closure</a></span> <code class="parameter">$task</code></span>): <span class="type"><span class="type"><a href="language.types.null.php" class="type null">?</a></span><span class="type">Future</span></span></div>

  <p class="simpara">
   Planifica <code class="parameter">task</code> para la ejecución en paralelo.
  </p>
  <div class="methodsynopsis dc-description">
   <span class="modifier">public</span> <span class="methodname"><strong>parallel\Runtime::run</strong></span>(<span class="methodparam"><span class="type"><a href="class.closure.php" class="type Closure">Closure</a></span> <code class="parameter">$task</code></span>, <span class="methodparam"><span class="type"><a href="language.types.array.php" class="type array">array</a></span> <code class="parameter">$argv</code></span>): <span class="type"><span class="type"><a href="language.types.null.php" class="type null">?</a></span><span class="type">Future</span></span></div>

  <p class="simpara">
   Planifica <code class="parameter">task</code> para la ejecución en paralelo, pasando <code class="parameter">argv</code> en el momento de la ejecución.
  </p>

 </div>


 <div class="refsect1 parameters" id="refsect1-parallel-runtime.run-parameters">
  <h3 class="title">Parámetros</h3>
  <dl>
   
    <dt><code class="parameter">task</code></dt>
    <dd>
     <span class="simpara">
      Una <span class="classname"><a href="class.closure.php" class="classname">Closure</a></span> con características específicas.
     </span>
    </dd>
   
   
    <dt><code class="parameter">argv</code></dt>
    <dd>
     <span class="simpara">
      Un <span class="type"><a href="language.types.array.php" class="type array">array</a></span> de argumentos con características específicas para pasar a <code class="parameter">task</code> en el momento de la ejecución.
     </span>
    </dd>
   
  </dl>
 </div>


 <div class="refsect1 closure-characteristics" id="refsect1-parallel-runtime.run-closure-characteristics">
 <h3 class="title">Características de la tarea</h3>
 <p class="para">
  Las cierres planificadas para la ejecución en paralelo no deben:
  <ul class="simplelist">
   <li>aceptar o devolver por referencia</li>
   <li>aceptar o devolver objetos internos (ver notas)</li>
   <li>ejecutar un conjunto limitado de instrucciones</li>
  </ul>
 </p>
 <p class="para">
  Las instrucciones prohibidas en los cierres destinados a la ejecución en paralelo son:
  <ul class="simplelist">
   <li>yield</li>
   <li>usar by-reference</li>
   <li>declarar clases</li>
   <li>declarar funciones nombradas</li>
  </ul>
 </p>
 <blockquote class="note"><p><strong class="note">Nota</strong>: 
  <span class="simpara">
   Los cierres anidados pueden usar yield o by-reference, pero no deben contener declaraciones de clases o funciones nombradas.
  </span>
 </p></blockquote>
 <blockquote class="note"><p><strong class="note">Nota</strong>: 
  <span class="simpara">
   Ninguna instrucción está prohibida en los ficheros que la tarea puede incluir.
  </span>
 </p></blockquote>
 </div>


 <div class="refsect1 argv-characteristics" id="refsect1-parallel-runtime.run-argv-characteristics">
 <h3 class="title">Características de los argumentos</h3>
 <p class="para">
  Los argumentos no deben:
  <ul class="simplelist">
   <li>contener referencias</li>
   <li>contener recursos</li>
   <li>contener objetos internos (ver notas)</li>
  </ul>
  <blockquote class="note"><p><strong class="note">Nota</strong>: 
   <span class="simpara">
    En el caso de los recursos de flujo de ficheros, el recurso será convertido en descriptor de fichero y pasado en <span class="type"><a href="language.types.integer.php" class="type int">int</a></span> si es posible, esto no está soportado en Windows.
   </span>
  </p></blockquote>
 </p>
 </div>


 <div class="refsect1 object-characteristics" id="refsect1-parallel-runtime.run-object-characteristics">
  <h3 class="title">Notas sobre los objetos internos</h3>
  <p class="simpara">
   Los objetos internos utilizan generalmente una estructura personalizada que no puede ser copiada de manera segura por valor, PHP carece actualmente de mecanismos para hacerlo (sin serialización)
   y por lo tanto solo los objetos que no utilizan una estructura personalizada pueden ser compartidos.
  </p>
  <p class="simpara">
   Algunos objetos internos no utilizan una estructura personalizada, por ejemplo <span class="classname"><a href="class.parallel-events-event.php" class="classname">parallel\Events\Event</a></span> y por lo tanto pueden ser compartidos.
  </p>
  <p class="simpara">
   Los cierres son un tipo especial de objeto interno y soportan ser copiados por valor, y por lo tanto pueden ser compartidos.
  </p>
  <p class="simpara">
   Los canales son centrales para la escritura de código paralelo y soportan el acceso y la ejecución concurrentes por necesidad, y por lo tanto pueden ser compartidos.
  </p>
  <div class="warning"><strong class="warning">Advertencia</strong>
   <p class="simpara">
    Una clase de usuario que extiende una clase interna puede usar una estructura personalizada tal como está definida por la clase interna, en cuyo caso no puede ser copiada de manera segura por valor,
    y por lo tanto no puede ser compartida.
   </p>
  </div>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-parallel-runtime.run-returnvalues">
  <h3 class="title">Valores devueltos</h3>
  <div class="warning"><strong class="warning">Advertencia</strong>
   <p class="simpara">
    El <span class="type">Future</span> devuelto no debe ser ignorado cuando la tarea contiene una declaración de retorno o de lanzamiento.
   </p>
  </div>
 </div>


 <div class="refsect1 exceptions" id="refsect1-parallel-runtime.run-exceptions">
  <h3 class="title">Excepciones</h3>
  <div class="warning"><strong class="warning">Advertencia</strong>
   <p class="simpara">
    Lanza una <span class="type">parallel\Runtime\Error\Closed</span> si <span class="type"><a href="class.parallel-runtime.php" class="type parallel\Runtime">parallel\Runtime</a></span> estaba cerrado.
   </p>
  </div>
  <div class="warning"><strong class="warning">Advertencia</strong>
   <p class="simpara">
    Lanza una <span class="type">parallel\Runtime\Error\IllegalFunction</span> si <code class="parameter">task</code> es un cierre creado a partir de una función interna.
   </p>
  </div>
  <div class="warning"><strong class="warning">Advertencia</strong>
   <p class="simpara">
    Lanza una <span class="type">parallel\Runtime\Error\IllegalInstruction</span> si <code class="parameter">task</code> contiene instrucciones ilegales.
   </p>
  </div>
  <div class="warning"><strong class="warning">Advertencia</strong>
   <p class="simpara">
    Lanza una <span class="type">parallel\Runtime\Error\IllegalParameter</span> si <code class="parameter">task</code> acepta o <code class="parameter">argv</code> contiene variables ilegales.
   </p>
  </div>
  <div class="warning"><strong class="warning">Advertencia</strong>
   <p class="simpara">
    Lanza una <span class="type">parallel\Runtime\Error\IllegalReturn</span> si <code class="parameter">task</code> devuelve de manera ilegal.
   </p>
  </div>
 </div>


</div><?php manual_footer($setup); ?>