Asynchronous Operations: Introduction

Asynkrona operationer möjliggör kooperativ multi-tasking genom att dölja I/O-latens, vilket låter program utföra andra uppgifter istället för att vänta på nätverksåtkomst eller databasfrågor. Asynkron programmering är inte detsamma som multithreading; koden körs fortfarande i en enda huvudtråd, men I/O-operationer kan exekveras samtidigt utan att blockera denna tråd. Konceptet är särskilt fördelaktigt för kod strukturerad som ett beroendeträd, där olika delar kan sammanflätas transparent för att maximera effektiviteten. Viktiga begränsningar inkluderar att all kod körs i huvudtråden och att blockering av API:er inte automatiskt konverteras till asynkrona funktioner. Artikeln illustrerar praktiskt hur asynkron cURL i HHVM kan minska exekveringstiden avsevärt genom att tillåta samtidiga nätverksförfrågningar.