- PHP Reactive Programming
- Martin Sikora
- 270字
- 2021-07-09 19:06:15
Asynchronous programming
The term asynchronous programming is very common in languages such as JavaScript. A very general definition is that, in asynchronous programming, we're executing code in a different order than it was defined. This is typical for any event based application.
For example, in JavaScript, we first define an event listener with its handler, which is executed some time later, when an appropriate event occurs.
In PHP, this could be, for example, a web application that needs to send an e-mail when we create a new blog article. Just, instead of lines of code, we're considering tasks. The following figure demonstrates an asynchronously triggered event:

While the web application was saving an article (processing a task), it triggered an event that sent an e-mail and then carried on with the original task. The event handler had to be defined somewhere before we started this task.
Asynchronous versus parallel programming
A very common misconception is that asynchronous and parallel programming are the same, or that one is an implication of the other. This is very common in JavaScript where, from the user's perspective, it looks like things are running in parallel.
This isn't true, but many programming languages (in fact, just their interpreters), create the illusion of running in parallel while they're still sequential. They appear to be parallel due to it's event-based nature (JavaScript), or because of their interpreter internals.
For example, Python simulates threads by switching the execution context between different parts of the application. The Python interpreter is still single threaded and executes instructions sequentially, but creates the illusion of running code in parallel.
- INSTANT OpenCV Starter
- Learning PostgreSQL
- Vue.js 3.x從入門到精通(視頻教學版)
- JavaScript 網頁編程從入門到精通 (清華社"視頻大講堂"大系·網絡開發視頻大講堂)
- Scratch真好玩:教小孩學編程
- 老“碼”識途
- Building Machine Learning Systems with Python(Second Edition)
- Python從入門到精通
- Node.js開發指南
- Unity 2018 Augmented Reality Projects
- Extending Unity with Editor Scripting
- Python Digital Forensics Cookbook
- Instant GLEW
- 打造流暢的Android App
- 現代JavaScript編程:經典范例與實踐技巧