官术网_书友最值得收藏!

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.

主站蜘蛛池模板: 汕尾市| 丽江市| 孟连| 东光县| 永丰县| 沿河| 固镇县| 绵竹市| 资源县| 沁源县| 丹东市| 句容市| 油尖旺区| 绵竹市| 泰兴市| 伊吾县| 卢龙县| 察雅县| 卢龙县| 黄石市| 红河县| 宁德市| 永顺县| 扎囊县| 合作市| 青浦区| 红安县| 图木舒克市| 华容县| 弥勒县| 昭觉县| 湖南省| 安西县| 贵南县| 象州县| 宁安市| 秦皇岛市| 高唐县| 深州市| 绥中县| 滦南县|