« Pool::shutdown
Pool::submitTo »

Pool::submit

(PECL pthreads >= 2.0.0)

Pool::submit — Submits an object for execution

説明

public function Pool::submit(Threaded $task): int

Submit the task to the next Worker in the Pool

パラメータ

task

The task for execution

戻り値

the identifier of the Worker executing the object

例

例1 Submitting Tasks

<?php
class MyWork extends Threaded {

    public function run() {
        /* ... */
    }
}

class MyWorker extends Worker {

    public function __construct(Something $something) {
        $this->something = $something;
    }

    public function run() {
        /** ... **/
    }
}

$pool = new Pool(8, \MyWorker::class, [new Something()]);
$pool->submit(new MyWork());
var_dump($pool);
?>

上の例の出力は以下となります。

object(Pool)#1 (6) {
  ["size":protected]=>
  int(8)
  ["class":protected]=>
  string(8) "MyWorker"
  ["workers":protected]=>
  array(1) {
    [0]=>
    object(MyWorker)#4 (1) {
      ["something"]=>
      object(Something)#5 (0) {
      }
    }
  }
  ["work":protected]=>
  array(1) {
    [0]=>
    object(MyWork)#3 (1) {
      ["worker"]=>
      object(MyWorker)#5 (1) {
        ["something"]=>
        object(Something)#6 (0) {
        }
      }
    }
  }
  ["ctor":protected]=>
  array(1) {
    [0]=>
    object(Something)#2 (0) {
    }
  }
  ["last":protected]=>
  int(1)
}
関連キーワード:
Pool   protected   MyWorker   Something   something   execution   submit   task   Submits   Worker   MyWork   pool   Threaded   extends   shutdown   submitTo   pthreads   Submit   next   identifier   executing   Submitting   Tasks   construct   dump
関連する関数・ページ:
pool.construct   class.pool   pool.submitTo   pool.resize   pool.shutdown   pool.collect