> 백엔드 개발 > PHP 튜토리얼 > PHP의 협력적 멀티태스킹에 대한 자세한 설명

PHP의 협력적 멀티태스킹에 대한 자세한 설명

小云云
풀어 주다: 2023-03-21 17:36:02
원래의
1538명이 탐색했습니다.

PHP5.5의 더 나은 새로운 기능 중 하나는 생성기와 코루틴에 대한 지원입니다. 제너레이터는 이미 PHP 문서와 다양한 다른 블로그 게시물(이 블로그나 이 블로그 등)에서 아주 자세하게 다루고 있습니다. 코루틴은 상대적으로 관심을 덜 받았기 때문에 코루틴은 매우 강력한 기능을 가지고 있음에도 불구하고 알기 어렵고 설명하기 어렵습니다.

제너레이터

제너레이터의 가장 기본적인 아이디어도 함수입니다. 이 함수의 반환 값은 단순히 단일 값을 반환하는 것이 아니라 순차적으로 출력됩니다. 즉, 생성기를 사용하면 반복자 인터페이스를 더 쉽게 구현할 수 있습니다. 다음은 xrange 함수를 구현하여 간단하게 설명합니다.

e8211d756ca12638dd3bcce479eccdcb

结束语

在这篇文章里,我使用多任务协作构建了一个任务调度器,其中包括执行“系统调用”,做非阻塞操作和处理错误。所有这些里真正很酷的事情是任务的结果代码看起来完全同步,甚至任务正在执行大量的异步操作的时候也是这样。如果你打算从套接口读取数据的话,你将不需要传递某个回调函数或者注册一个事件侦听器。相反,你只要书写yield $socket->read()。这儿大部分都是你常常也要编写的,只在它的前面增加yield。

当我第一次听到所有这一切的时候,我发现这个概念完全令人折服,而且正是这个激励我在PHP中实现了它。同时我发现协程真正令人心慌。在令人敬畏的代码和很大一堆代码之间只有单薄的一行,我认为协程正好处在这一行上。讲讲使用上面所述的方法书写异步代码是否真的有益对我来说很难。

위 내용은 PHP의 협력적 멀티태스킹에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿