<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/functional.parallel.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'fr',
  ),
  'this' => 
  array (
    0 => 'parallel.run.php',
    1 => 'parallel\\run',
    2 => 'Ex&eacute;cution',
  ),
  'up' => 
  array (
    0 => 'functional.parallel.php',
    1 => 'Functional API',
  ),
  'prev' => 
  array (
    0 => 'parallel.bootstrap.php',
    1 => 'parallel\\bootstrap',
  ),
  'next' => 
  array (
    0 => 'class.parallel-runtime.php',
    1 => 'parallel\\Runtime',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'fr',
    'path' => 'reference/parallel/functions/parallel.run.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="parallel.run" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">parallel\run</h1>
  <p class="verinfo">(1.0.0)</p><p class="refpurpose"><span class="refname">parallel\run</span> &mdash; <span class="dc-title">Exécution</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-parallel.run-description">
  <h3 class="title">Description</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>parallel\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">
   Planifie <code class="parameter">task</code> pour exécution en parallèle.
  </p>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>parallel\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">
   Planifie <code class="parameter">task</code> pour exécution en parallèle, passant <code class="parameter">argv</code> à l&#039;exécution.
  </p>
 </div>


 <div class="refsect1 scheduling-characteristics" id="refsect1-parallel.run-scheduling-characteristics">
  <h3 class="title">Planification automatique</h3>
  <p class="simpara">
   Si un <span class="classname"><a href="class.parallel-runtime.php" class="classname">\parallel\Runtime</a></span> créé et mis en cache par un appel précédent à <span class="function"><strong>parallel\run()</strong></span> est inactif,
   il sera utilisé pour exécuter la tâche. Si aucun <span class="classname"><a href="class.parallel-runtime.php" class="classname">\parallel\Runtime</a></span> n&#039;est inactif, parallel créera et mettra en cache un
   <span class="classname"><a href="class.parallel-runtime.php" class="classname">\parallel\Runtime</a></span>.
  </p>
  <blockquote class="note"><p><strong class="note">Note</strong>: 
   <span class="simpara">
    Les objets <span class="classname"><a href="class.parallel-runtime.php" class="classname">\parallel\Runtime</a></span> créés par le développeur ne sont pas utilisés pour la planification automatique.
   </span>
  </p></blockquote>
 </div>


 <div class="refsect1 parameters" id="refsect1-parallel.run-parameters">
  <h3 class="title">Liste de paramètres</h3>
  <dl>
   
    <dt><code class="parameter">task</code></dt>
    <dd>
     <span class="simpara">
      Une <span class="classname"><a href="class.closure.php" class="classname">Closure</a></span> avec des caractéristiques spécifiques.
     </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> d&#039;arguments avec des caractéristiques spécifiques à passer à <code class="parameter">task</code> au moment de l&#039;exécution.
     </span>
    </dd>
   
  </dl>
 </div>

 <div class="refsect1 closure-characteristics" id="refsect1-parallel.run-closure-characteristics">
 <h3 class="title">Task Characteristics</h3>
 <p class="para">
  Les fermetures planifiées pour l&#039;exécution en parallèle ne doivent pas :
  <ul class="simplelist">
   <li>accepter ou retourner par référence</li>
   <li>accepter ou retourner des objets internes (voir notes)</li>
   <li>exécuter un ensemble limité d'instructions</li>
  </ul>
 </p>
 <p class="para">
  Les instructions interdites dans les fermetures destinées à l&#039;exécution en parallèle sont :
  <ul class="simplelist">
   <li>yield</li>
   <li>utiliser by-reference</li>
   <li>déclarer des classes</li>
   <li>déclarer des fonctions nommées</li>
  </ul>
 </p>
 <blockquote class="note"><p><strong class="note">Note</strong>: 
  <span class="simpara">
   Les fermetures imbriquées peuvent yield ou utiliser by-reference, mais ne doivent pas contenir de déclarations de classes ou de fonctions nommées.
  </span>
 </p></blockquote>
 <blockquote class="note"><p><strong class="note">Note</strong>: 
  <span class="simpara">
   Aucune instruction n&#039;est interdite dans les fichiers que la tâche peut inclure.
  </span>
 </p></blockquote>
 </div>

 <div class="refsect1 argv-characteristics" id="refsect1-parallel.run-argv-characteristics">
 <h3 class="title">Caractéristiques des arguments</h3>
 <p class="para">
  Les arguments ne doivent pas:
  <ul class="simplelist">
   <li>contenir des références</li>
   <li>contenir des ressources</li>
   <li>contenir des objets internes (voir notes)</li>
  </ul>
  <blockquote class="note"><p><strong class="note">Note</strong>: 
   <span class="simpara">
    Dans le cas des ressources de flux de fichiers, la ressource sera convertie en descripteur de fichier et passée en <span class="type"><a href="language.types.integer.php" class="type int">int</a></span> si possible, ceci n&#039;est pas supporté sur Windows.
   </span>
  </p></blockquote>
 </p>
 </div>

 <div class="refsect1 object-characteristics" id="refsect1-parallel.run-object-characteristics">
  <h3 class="title">Notes sur les objets internes</h3>
  <p class="simpara">
   Les objets internes utilisent généralement une structure personnalisée qui ne peut pas être copiée en toute sécurité par valeur, PHP manque actuellement des mécanismes pour le faire (sans sérialisation)
   et donc seuls les objets qui n&#039;utilisent pas une structure personnalisée peuvent être partagés.
  </p>
  <p class="simpara">
   Certains objets internes n&#039;utilisent pas de structure personnalisée, par exemple <span class="classname"><a href="class.parallel-events-event.php" class="classname">parallel\Events\Event</a></span> et peuvent donc être partagés.
  </p>
  <p class="simpara">
   Les fermetures sont un type spécial d&#039;objet interne et peuvent être copiées par valeur, et peuvent donc être partagées.
  </p>
  <p class="simpara">
   Les canaux sont centraux pour l&#039;écriture de code parallèle et supportent l&#039;accès et l&#039;exécution concurrents par nécessité, et peuvent donc être partagés.
  </p>
  <div class="warning"><strong class="warning">Avertissement</strong>
   <p class="simpara">
    Une classe utilisateur qui étend une classe interne peut utiliser une structure personnalisée telle que définie par la classe interne, auquel cas elle ne peut pas être copiée en toute sécurité par valeur,
    et ne peut donc pas être partagée.
   </p>
  </div>
 </div>

 <div class="refsect1 returnvalues" id="refsect1-parallel.run-returnvalues">
  <h3 class="title">Valeurs de retour</h3>
  <div class="warning"><strong class="warning">Avertissement</strong>
   <p class="simpara">
    La <span class="type">Future</span> retournée ne doit pas être ignorée lorsque la tâche contient une déclaration de retour ou de lancer.
   </p>
  </div>
 </div>

 <div class="refsect1 exceptions" id="refsect1-parallel.run-exceptions">
  <h3 class="title">Exceptions</h3>
  <div class="warning"><strong class="warning">Avertissement</strong>
   <p class="simpara">
    Lance une <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> était fermé.
   </p>
  </div>
  <div class="warning"><strong class="warning">Avertissement</strong>
   <p class="simpara">
    Lance une <span class="type">parallel\Runtime\Error\IllegalFunction</span> si <code class="parameter">task</code> est une fermeture créée à partir d&#039;une fonction interne.
   </p>
  </div>
  <div class="warning"><strong class="warning">Avertissement</strong>
   <p class="simpara">
    Lance une <span class="type">parallel\Runtime\Error\IllegalInstruction</span> si <code class="parameter">task</code> contient des instructions illégales.
   </p>
  </div>
  <div class="warning"><strong class="warning">Avertissement</strong>
   <p class="simpara">
    Lance une <span class="type">parallel\Runtime\Error\IllegalParameter</span> si <code class="parameter">task</code> accepte ou <code class="parameter">argv</code> contient des variables illégales.
   </p>
  </div>
  <div class="warning"><strong class="warning">Avertissement</strong>
   <p class="simpara">
    Lance une <span class="type">parallel\Runtime\Error\IllegalReturn</span> si <code class="parameter">task</code> retourne illégalement.
   </p>
  </div>
 </div>


 <div class="refsect1 seealso" id="refsect1-parallel.run-seealso">
   <h3 class="title">Voir aussi</h3>
   <ul class="simplelist">
    <li><a href="parallel-runtime.run.php" class="xref">parallel\Runtime::run</a></li>
   </ul>
  </div>


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