3.php 758 B

1234567891011121314151617181920212223242526272829303132
  1. <?php
  2. $c1 = new chan(1);
  3. //product first with select mode
  4. $num = 10;
  5. go(function () use ($c1,$num) {
  6. echo "push start\n";
  7. for ($i=0;$i<$num;$i++)
  8. {
  9. $ret = $c1->push("data-$i");
  10. echo "push [#$i] ret:".var_export($ret,1)."\n";
  11. }
  12. });
  13. go(function () use ($c1,$num) {
  14. $read_list = [$c1];
  15. $write_list = null;
  16. echo "select yield\n";
  17. $result = chan::select($read_list, $write_list, 2);
  18. echo "select resume res: ".var_export($result,1)."\n";
  19. if ($read_list)
  20. {
  21. foreach($read_list as $ch)
  22. {
  23. for ($i=0;$i<$num;$i++)
  24. {
  25. $ret = $ch->pop();
  26. echo "pop [#$i] ret:".var_export($ret,1)."\n";
  27. }
  28. }
  29. }
  30. });
  31. echo "main end\n";