Upgrade to Pro — share decks privately, control downloads, hide ads and more …

PHP Além do Síncrono

4ce43cd2535d0afe50065a743af646e9?s=47 Diana Arnos
September 17, 2021

PHP Além do Síncrono

Assíncrono e Paralelo: o PHP também faz

Quando tudo era mato, ninguém acreditava que a linguagem PHP poderia ser usada para nada além da execução de scripts simples, sites ou um CMS de código bem bagunçado.
Então o mundo mudou e hoje temos grandes frameworks, sistemas corporativos, grandes portais e redes sociais e até sistemas de segurança e pagamentos escritos em PHP.
Agora, a comunidade se debruça sobre o novo hype (ou seria necessidade?): processamento assíncrono e paralelo.
Nessa apresentação, vamos entender a difereça entre async e paralelo, como podemos trabalhar com isso usando PHP (inclusive nativamente).

Conheça a sua ferramenta.

4ce43cd2535d0afe50065a743af646e9?s=128

Diana Arnos

September 17, 2021
Tweet

Transcript

  1. PHP Além do Síncrono Assíncrono e Paralelo: o PHP também

    faz
  2. @dianaarnos Dev, Gaming, Music, Kung Fu. Senior Software Engineer @

    Momentive (Amsterdã, Holanda) Evangelista PHP
  3. VOCÊ DISSE…

  4. VOCÊ DISSE… ASSÍNCRONO?

  5. None
  6. None
  7. None
  8. None
  9. None
  10. MAS ANTES...

  11. MAS ANTES...

  12. SÍNCRONO X ASSÍNCRONO X PARALELO

  13. Síncrono Tempo Tarefa 1 Tarefa 2 Tarefa 3

  14. Assíncrono Tempo Tarefa 1 Tarefa 2 Tarefa 3

  15. Paralelo Tempo Tarefa 1 Tarefa 2 Tarefa 3

  16. None
  17. É SÍNCRONO…

  18. None
  19. None
  20. None
  21. None
  22. None
  23. None
  24. None
  25. É SÍNCRONO… TAMBÉM

  26. None
  27. PHP PURO: • CORROTINAS (GENERATORS) • CORROTINAS (FIBERS - PHP

    8.1) • STREAMS NÃO-BLOQUEANTES • FORKS • CURL_MULTI_* EXTENSÕES: • PARALLEL • SWOOLE
  28. ASSÍNCRONO

  29. GENERATORS

  30. None
  31. None
  32. None
  33. None
  34. None
  35. None
  36. None
  37. None
  38. None
  39. None
  40. None
  41. TÁ, MAS E AÍ?

  42. CORROTINAS

  43. ROTINAS QUE COOPERAM ENTRE SI

  44. A () { // EXECUTA CÓDIGO B(); // ... CONTINUA

    B(); // … FIM DA EXECUÇÃO } B () { // PROCESSA ENTRADA CONTINUA A(); // … CONTINUA A(); } COMUNICAÇÃO
  45. GENERATORS, DE NOVO

  46. None
  47. None
  48. None
  49. None
  50. None
  51. None
  52. None
  53. None
  54. CORROTINAS PHP 5.5 - 2013

  55. FIBERS

  56. FIBERS PHP 8.1 - Novembro, 2021

  57. None
  58. None
  59. None
  60. None
  61. None
  62. STREAMS NÃO-BLOQUEANTES

  63. None
  64. None
  65. None
  66. None
  67. STREAMS NÃO-BLOQUEANTES PHP 4.3 - 2002

  68. PARALELO

  69. cURL

  70. curl_multi_*

  71. None
  72. None
  73. None
  74. None
  75. None
  76. None
  77. None
  78. None
  79. None
  80. FORK PHP 4.1 - 2001

  81. None
  82. EXTENSÕES

  83. PARALLEL

  84. None
  85. None
  86. SÓ COM PHP ZTS

  87. SWOOLE

  88. None
  89. conclusão

  90. None
  91. REFERÊNCIAS E SLIDES https://bit.ly/ccd2021-php-async

  92. Me ajude a melhorar essa apresentação https://www.surveymonkey.com/r/php-async

  93. OBRIGADA! PERGUNTAS? Fale comigo: @dianaarnos