首页 > 编程语言 >嵌入式软件异步编程:应用案例

嵌入式软件异步编程:应用案例

时间:2022-11-20 23:34:07浏览次数:63  
标签:Node 异步 JavaScript 编程 js Nginx 嵌入式软件 event


异步编程有很多成功的应用,例如lwIP、Nginx、Node.js、Linux AIO、JavaScript等。可以将这些成功案例的设计经验引入到嵌入式软件。

lwIP

The raw TCP/IP interface allows the application program to integrate better with the TCP/IP code. Program execution is event based by having callback functions being called from within the TCP/IP code.

The raw TCP/IP interface is not only faster in terms of code execution time but is also less memory intensive.

​lwIP​​​​lwIP@wikipedia​

​​《基于回调的lwIP raw API》​​

Nginx

Nginx uses an asynchronous event-driven approach to handling requests. Nginx’s modular event-driven architecture can provide more predictable performance under high loads.

​Nginx​​​​Nginx@wikipedia​

​《深入理解Nginx:模块开发与架构解析(第2版) 》​

  • 第8章 Nginx基础架构
  • 8.2 Nginx的架构设计
  • 8.2.2 事件驱动架构
  • 8.2.3 请求的多阶段异步处理

Node.js

Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient.

​Node.js​​​​Node.js@wikipedia​

​《深入浅出Node.js》​

  • 第 3 章 异步I/O
  • 第 4 章 异步编程

Linux AIO

使用异步 I/O 可以帮助我们构建 I/O 速度更快、效率更高的应用程序。如果我们的应用程序可以对处理和 I/O 操作重叠进行,那么 AIO 就可以帮助我们构建可以更高效地使用可用 CPU 资源的应用程序。

​《使用异步 I/O 大大提高应用程序的性能》​

JavaScript

​《JavaScript异步编程:设计快速响应的网络应用》​

  • 第1章 深入理解JavaScript事件
  • 第2章 分布式事件

​《你不知道的JavaScript(中卷)》​

  • 第二部分 异步和性能
  • 第 1 章 异步:现在与将来
  • 第 2 章 回调

libevent

The libevent API provides a mechanism to execute a callback function when a specific event occurs on a file descriptor or after a timeout has been reached. Furthermore, libevent also support callbacks due to signals or regular timeouts.

libev

A full-featured and high-performance event loop that is loosely modelled after libevent, but without its limitations and bugs.

libuv

Node.js 用的就是libuv。

libuv is a multi-platform support library with a focus on asynchronous I/O.

Redis


标签:Node,异步,JavaScript,编程,js,Nginx,嵌入式软件,event
From: https://blog.51cto.com/zoomdy/5872183

相关文章

  • java-网络编程
    一、概述1、两个主要问题(1)如何准确定位网络上一台或多台主机;定位主机上的特定应用(2)找到主机后如何可靠高效的进行数据传输2、两个要素(1)IP和端口号(2)网络通信协议(OSI参......
  • RISC-V 编程之 Frame Pointer和 backtrace
    生成的代码一段简单的代码:intmain(void){blink1(10);return0;}未设置任何优化选项得到的编译结果,函数头部的​​sws0,8(sp)​​​和​​addis0,sp,16​​​和函......
  • 网络编程与并发周末总结
    目录网络编程软件开发架构架构总结网络编程理论OSI七层协议简介OSI七层协议之数据链路层网络层传输层传输层之TCP与UDP协议应用层网络相关专业名词socket模块socket代码简......
  • Java 函数式编程「二」
    接上回,聊聊函子functor。functor是一个容器。该容器的value属性指向被包裹的数据;该容器的map方法对容器进行映射变换。以下代码实现一个最普通的functor,称之为J......
  • 从Scratch 2学到的一些编程思想
    从Scratch2学到的一些编程思想所有程序都是事件驱动的mingdu.zhengatgmaildotcomScratch是麻省理工大学(MIT)为8~16岁的孩子开发的编程工具。Scratch的基本原理是为所选......
  • 在嵌入式软件中使用断言的一点想法
    嵌入式软件中的断言应该分成三个级别,而不是仅有启用和关闭两种。1、启用断言并打印可读信息;2、启用断言并打印代码地址、3、关闭断言。mingdu.zhengatgmaildotcom矛盾断......
  • 嵌入式软件异步编程:同步还是异步?
    异步并不总是提高效率的,那什么时候用同步,什么时候用异步呢?mingdu.zhengatgmaildotcom异步要解决的是CPU和I/O速度差异的问题,所以异步适合I/O远慢于CPU的情况,如果I/O仅稍......
  • 并发编程理论和进程理论
    目录一、并发编程理论操作系统发展史1、手工操作——穿孔卡片2、批处理——磁带存储1.联机批处理系统2.脱机批处理系统二、多道程序设计技术单道技术多道技术多道技术......
  • socket模块实现网络编程及struct模块解决黏包问题
    目录一、socket模块1、简介2、基于文件类型的套接字家族3、基于网络类型的套接字家族二、socket代码简介三、socket代码优化1.聊天内容自定义2.让聊天循环起来3.用户输入的......
  • 十大排序算法的各种编程语言的实现
    排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排......