TGViewer
Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter @phpproglib · 10.5K subscribers
Post #4585 3.02K
Понимание генераторов, корутинов и фиберов в разных языках

Генераторы, корутины и фибры предоставляют мощные инструменты для управления асинхронными и итеративными вычислениями в различных языках программирования. Понимание этих конструкций помогает разработчикам писать более эффективный и поддерживаемый асинхронный код.

Генераторы:

Генераторы — это функции, которые можно приостановить и возобновить позже. Они позволяют итерироваться по последовательности значений с течением времени, а не вычислять их все сразу.

🔸JavaScript: Генераторы создаются с использованием function* и yield.

🔸Python: Генераторы определяются с использованием def и yield

🔸PHP: Генераторы введены в версии 5.5 с использованием yield

Корутины:

Корутины — это обобщения подпрограмм (функций), которые могут быть приостановлены и возобновлены. Они используются для кооперативной многозадачности и могут сохранять свое состояние между вызовами.

🔸Python: Корутины — это асинхронные генераторы, определяемые с помощью async def и await.

Фибры:

Фибры — это легковесные примитивы для конкурентности, которые позволяют нескольким контекстам выполнения сосуществовать и переключаться между ними вручную. В отличие от потоков, фибры должны явно уступать управление.

🔸Ruby: Ruby поддерживает фибры, которые могут использоваться для реализации генераторов.
  • 🤔 4
  • ❤ 2
  • 👍 2
  • 🥱 1
More from @phpproglib
  1. Oct 2, 2026🎹 Что делать после ChatGPT? Следующий шаг — AI-агенты. Они не просто отвечают на запросы,…
  2. Sep 30, 2026🔥 Последний день для разработчиков AI уже пишет код. Теперь важнее научиться встраивать е…
  3. Sep 30, 2026🐸 Библиотека пхпшника
  4. Sep 29, 2026💡 Laravel-фича, которая спасает тесты от случайных запросов Http::preventStrayRequests()…
  5. Sep 28, 2026🔐 ramsey/uuid — UUID без самописного кода Библиотека помогает генерировать, парсить и вал…
  6. Sep 28, 2026🤔 Что выведет код? ❤️ — 1 🔥 — 2 👍 — 12 👾 — Fatal error 👇 Правильный ответ (нажми, что…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →