"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo escribir funciones verdaderamente no bloqueadas en Node.js?

¿Cómo escribir funciones verdaderamente no bloqueadas en Node.js?

Publicado el 2025-03-10
Navegar:709

How to Write Truly Non-Blocking Functions in Node.js?

Correcta forma de escribir una función no bloqueada en node.js

El paradigma sin bloqueo es crucial en node.js para lograr un alto rendimiento. Sin embargo, puede ser un desafío escribir funciones verdaderamente no bloqueadas que no impidan el progreso del bucle del evento.

comprender el comportamiento sin bloqueo

El código de envoltura en una promesa no lo hace inherentemente sin bloqueo. La función del ejecutor de promesa se ejecuta sincrónicamente, lo que significa que el código de larga duración dentro de ella bloqueará la ejecución de otras operaciones.

Ejemplo: Función de bloqueo de promesa-Wrawpped

Considere la siguiente función:

Función LongRunchfunc (val) return new Promise ((resolve, rechazar) => { Sum = 0; para (dejar i = 0; i function longRunningFunc(val, mod) { return new Promise((resolve, reject) => { let sum = 0; for (let i = 0; i Mientras esta función devuelve una promesa, el código dentro del ejecutor está bloqueando. El bucle de eventos esperará hasta que este código se complete antes de ejecutar otras operaciones.

Simulando AsynChronicity con setTimeout

un enfoque para emular el comportamiento no bloqueado en este caso es usar setTimeout:

longRunningfunc (val, mod) { return new Promise ((resolve, rechazar) => { setTimeOut (() => { Sum = 0; para (dejar i = 0; i function longRunningFunc(val, mod) { return new Promise((resolve, reject) => { let sum = 0; for (let i = 0; i Este código programa el bucle de larga duración para ejecutar después de un retraso de 10 milisegundos. Sin embargo, todavía está bloqueando dentro de ese período de ejecución retrasado.

verdadero enfoques sin bloqueo

para crear verdaderas funciones sin bloqueo, necesita usar técnicas que muevan el código ejecutivo de código principal. Tareas de larga duración.

    trabajador hilos:
  • Utilice la función de hilos de trabajadores experimentales en Node.js para crear múltiples hilos dentro de un solo proceso.
  • Código nativo:
  • Write C u otras extensiones de código nativo que usan un sistema de sistema sincronés. API asíncronas: Aproveche las operaciones asíncronas proporcionadas por los módulos centrales Node.js, como la E/S de archivo con fs.ReadFile, http solicita con http.get o consultas de base de datos con mongoose.connect.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3