文字
分享

Pool::submit

(PECL pthreads >= 2.0.0)

Pool::submit提交对象以执行

说明

public integer Pool::submit ( Threaded $task )

将任务提交到 Pool 中的下一个 Worker 对象

参数

task

要执行的任务

返回值

执行新加入对象的 Worker 对象ID

范例

Example #1 提交任务

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

以上例程会输出:

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

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::shutdown下一篇:Pool::submitTo