Fe de erratas: 1. En Node.js lo que está relacionado con sockets (TCP, UDP) no necesita un hilo aparte, sino que se utilizan mecanismos de monitorización según el sistema operativo, por ejemplo epoll en Linux: docs.libuv.org/en/v1.x/design.html Solo necesitan hilos aparte aquellas tareas que no pueden monitorizarse, como por ejemplo I/O con ficheros y DNS lookups. Por tanto las peticiones de red, si no es necesario hacer un DNS lookup, no necesitan un hilo aparte. El hilo principial pone en marcha la petición pero sin bloquearse, y la próxima vez que intente extraer una tarea de la cola, usará epoll para determinar el evento (llegada de datos en un socket).
La verdad tengo tiempo programando alrededor de 5 años y muchas veces intuyes como funcionan estas cosas pero no profundizas, y tu vas a fondo de cada cosa buscando como entenderla, de verdad que eres un crack man te admiro un montón, deberías hacer un video de tips de como aprender me refiero tips para ser mas pro-activo estoy seguro que tu eres bastante pro.activo. Gracias por el video!
@@danielvera4661 Los apoyo a ambos. Vendría muy bien un vídeo que trate el tema de; Cómo se orgarniza él, para aprender temas a ese nivel de profundidad, con tips y eso.
Ver los videos de ti desarrollando, me hace sentir que estoy años luz de llegar a tu experiencia en tantas ramas, pero en mi meta esta tener un dominio tan ampli como tú. Gracias por motivarnos a los que vemos tus videos.
Ésta súper genial tú explicación men, yo cuándo aprendí como funcionaba el escuchador de eventos (Event Loop). Yo me metí de caña con la Libuv para comprender este flujo, y está súper bueno saberlo. Para las entrevistas técnicas esto es un gran filtro. Un punto clave también y es un mundo es la parte que nombras " Las prioridades de tarea" esto en términos del propio Event Loop, se llama Task Queue, que prioriza aquellas tareas en espera por respuesta, como cuándo usamos las promesas ese .then es priorizado primero sí existiese otras tareas dentro de ese Queue, es un tremendo concepto y está súper genial saberlo
Excelente explicación. te daré una sugerencia, sería más fácil navegar en tu canal en busca de otros videos si crearás listas de repuducciones clasificadas por lenguaje, framework, frontend, backend ... Saludos desde Républica Dominicana
Muy interesante la verdad,, yo pense que programacion iba a ser bastante complicada y que habia que entender conceptos complejos pero tu explicacion como que la capte casi toda entendi el concepto general bastante facil deberias ser profesor bueno ya sos como un profesor para los que te ven pero me refiero asi tipo profesionalmente jaja.. saludos!
La verdad que deberías tener 1M de seguidores! Que buena explicación.. nada de fanplicit! Es explicación real!! Voy a seguir vendiendo videos tuyos y este lo voy a ver 3 veces más seguro!!
La primera vez que implemente código asíncrono y multithreading en C# tuve que leer varias veces la documentación y me costo mucho entender, tu contenido es excelente y facilita bastante el entendimiento de esos conceptos, Gracias
gran video!!, muchas veces no conocemos comportamiento a fondo que tienen las funciones ,que programamos y usamos diariamente, en el entorno a nivel sistema operativo ni mucho menos su interacción con el kernel y CPU, explicas muy bien y a detalle, gran aporte saludos!!!
Gracias! Al fin alguien me explica el porqué no me gusta el comportamiento extraño de JavaScript comparado con otro lenguaje que se ejecuta línea por línea sin dolores de cabeza.
Excelente explicacion! Ya conocia el event loop y asynchronous JavaScript, pero siempre sienta bien repasar los conceptos y has sido muy claro durante toda la explicacion!
Que excelente vídeo. Hace un día atrás justo estaba viendo algo relacionado con esto. xd Aún no me queda claro del todo, pero ya me hago una idea de cómo funciona. Muchas gracias por tan buen contenido. :)
Soy del área de desarrollo de software y debo ser honesto. He visto muchos videos sobre explicaciones de x tecnología y hay que reconocer algo, muchos extienden sus explicaciones de forma innecesaria cuando el tema no da para tanto. Hablando propiamente de los videos de tu canal, he notado que el contenido es muy interesante, con explicaciones claras y de lo mejor en habla hispana, sin tanto choro, cómo debe de ser: explicaciones con ejercicios claros. Felicitaciones.
El concepto de asyn await en otros lenguajes se traduce a Hilos (Thread) todo es cuestión de apreciación, Así lo veo yo , ya que ejecuta órdenes en segundo plano de manera asíncrona si alterar la ejecución normal del programa.
la gran falencia de los juniors: aprender solo lo tecnico y no entender el porque de las cosas..... muchas gracias por esta gran explicación, se los compartire a mis alumnos.
Otros lenguajes sí lo necesitan por los Tasks ... solo que en JS es mandatorio si necesitas hacer un bloqueo ya que por defecto este no existe por el event loop
Bro he visto videos tuyos antiguos y los comparo con los nuevos y solo de verte me doy cuenta lo orgulloso y arrogante que te has vuelto debido a tu conocimiento. Amigo el conocimiento envanece pero el amor edifica. Dale más suave y con humildad. Recuerda que antes de la destrucción está el orgullo. Así que bájale hombre.saca tiempo para estudiar sobre la humildad. Te lo digo porque te quiero ver bien hombre. Eso es todo.
15:16 ¿Hay alguna forma de manipular el flujo del thread pool para evitar que el so genere estas pelas de hilos? Me agrada tu contenido, tus temas teoricos definitivamente complementan mucho el quehacer practico en la programación
Soy nuevo ej JS y tus videos han sido de gran ayuda.Ttu canal es excelente, por lo bien explicado y la diversidad de temas que tratas.( Like and subcribed allready 😆 ) Quería preguntarte referente a este tema que diferencia hay entre las siguientes : async function traerDeInet(url){
let datos = await fetch(url); console.log(datos); } function traerDeInet(url){ var promise= fetch(url); promise.then((datos) => {console.log(datos);}); return promise; } Desde ya muchas gracias y adelante que vas sobre rieles.
Entiendo que es parte de la "simplificacion", pero aqui se esta utilizando la misma palabra "hilo" para referirse a 3 cosas distintas: "procesos" (los que corre cada core del CPU), "hilos/threads" (cada core puede correr varios de estos), y coroutinas, los event-loops funcionan con coroutines, un script de nodejs corre generalmente en un solo hilo con un event-loop que ejecuta multiples coroutines
Me refiero a los hilos que usa Node.js para bloquearse en Entrada/Salida. El hilo de JS no se bloquea, cualquier tarea bloqueante se ejecuta en el thread pool de Libuv. Las peticiones de red pueden incluir un DNS lookup, eso por ejemplo se ejecuta en el thread pool. Las lecturas de ficheros también. docs.libuv.org/en/v1.x/threadpool.html Lo que hace Node.js para ejecutar Javascript en un solo hilo es otra cosa, imagino que para pausar las funciones asíncronas cuando encuentra un await o pausar generadores en un yield usará algo similar a coroutines pero no lo sé, eso no lo he investigado.
@@AntonioSarosi Disculpa, era sarcasmo. No se trata de eso, es que entiendo (creo) los conceptos de sincronismo y asincronismo, pero para una persona que está comenzado creo que se merecen una advertencia que esto es programación avanzada, que si estas desarrollando una aplicación elemental con un carrito de compras, lo más probable es que no aplique en ese ámbito. Espero hayas entendido mi posición.
Fe de erratas:
1. En Node.js lo que está relacionado con sockets (TCP, UDP) no necesita un hilo aparte, sino que se utilizan mecanismos de monitorización según el sistema operativo, por ejemplo epoll en Linux:
docs.libuv.org/en/v1.x/design.html
Solo necesitan hilos aparte aquellas tareas que no pueden monitorizarse, como por ejemplo I/O con ficheros y DNS lookups. Por tanto las peticiones de red, si no es necesario hacer un DNS lookup, no necesitan un hilo aparte. El hilo principial pone en marcha la petición pero sin bloquearse, y la próxima vez que intente extraer una tarea de la cola, usará epoll para determinar el evento (llegada de datos en un socket).
"Cuándo uno simplifica conceptos, tiene que omitir detalles... hay gente que esto no le queda muy claro" no se imaginan la paz que me causó esa frase
gran frase... !!! hay personas que quieren ver conceptos super amplios en videos de 30 segundos.. jajaja ..
Frase épica del siglo
Estaba en el RUclips naranja pero me saltó la notificación y tuve que dejarlo a medias para ver esto
Lol
Lol x2
Lol x3
Lol x4
Lol x5
La verdad tengo tiempo programando alrededor de 5 años y muchas veces intuyes como funcionan estas cosas pero no profundizas, y tu vas a fondo de cada cosa buscando como entenderla, de verdad que eres un crack man te admiro un montón, deberías hacer un video de tips de como aprender me refiero tips para ser mas pro-activo estoy seguro que tu eres bastante pro.activo. Gracias por el video!
Pienso lo mismo, ese man le mete un estudio profundo a las cosas. Si debería platicar sobre ese proceso que el hace
@@danielvera4661 Los apoyo a ambos. Vendría muy bien un vídeo que trate el tema de; Cómo se orgarniza él, para aprender temas a ese nivel de profundidad, con tips y eso.
Ver los videos de ti desarrollando, me hace sentir que estoy años luz de llegar a tu experiencia en tantas ramas, pero en mi meta esta tener un dominio tan ampli como tú.
Gracias por motivarnos a los que vemos tus videos.
El dominio nunca es amplio jaja, cuando aprendes 2 cosas descubres 4 que sigues sin saber
Ésta súper genial tú explicación men, yo cuándo aprendí como funcionaba el escuchador de eventos (Event Loop). Yo me metí de caña con la Libuv para comprender este flujo, y está súper bueno saberlo. Para las entrevistas técnicas esto es un gran filtro. Un punto clave también y es un mundo es la parte que nombras " Las prioridades de tarea" esto en términos del propio Event Loop, se llama Task Queue, que prioriza aquellas tareas en espera por respuesta, como cuándo usamos las promesas ese .then es priorizado primero sí existiese otras tareas dentro de ese Queue, es un tremendo concepto y está súper genial saberlo
Gran video, gran explicación y buenísimos aspecto gráfico para que todo se entienda, mis dieses
Justo necesitaba un video que habla de la concurrencia y como maneja las peticiones con hilos en nodejs. Buen video
Excelente explicación. te daré una sugerencia, sería más fácil navegar en tu canal en busca de otros videos si crearás listas de repuducciones clasificadas por lenguaje, framework, frontend, backend ...
Saludos desde Républica Dominicana
Genial explicación!! Es la mejor que he escuchado sobre este tema y por fin lo tengo claro. Ya tienes otro suscriptor. Muchas gracias. 👍
x2
Muy interesante la verdad,, yo pense que programacion iba a ser bastante complicada y que habia que entender conceptos complejos pero tu explicacion como que la capte casi toda entendi el concepto general bastante facil deberias ser profesor bueno ya sos como un profesor para los que te ven pero me refiero asi tipo profesionalmente jaja.. saludos!
La verdad que deberías tener 1M de seguidores! Que buena explicación.. nada de fanplicit! Es explicación real!! Voy a seguir vendiendo videos tuyos y este lo voy a ver 3 veces más seguro!!
La primera vez que implemente código asíncrono y multithreading en C# tuve que leer varias veces la documentación y me costo mucho entender, tu contenido es excelente y facilita bastante el entendimiento de esos conceptos, Gracias
Gracias a este vídeo pude entender a fondo el funcionamiento de async y await. Excelente explicación. Muchas Gracias!
gran video!!, muchas veces no conocemos comportamiento a fondo que tienen las funciones ,que programamos y usamos diariamente, en el entorno a nivel sistema operativo ni mucho menos su interacción con el kernel y CPU, explicas muy bien y a detalle, gran aporte saludos!!!
Muy muy bueno el video. Gracias por explicar estos conceptos complejos para personas que no estudiamos ingenieria informatica.
joyita de video, tengo mucho tiempo aprendiendo a programar y siento que subido un escalon muy grande con este video
Me ha gustado mucho la explicación, la verdad es que bajo mi punto de vista, la mejor explicación que me he encontrado sobre este tema!
Esa manera de meter el video del sponsor te ha quedado muy a lo Linus Tech Tips xdd
Deberías poner estos vídeos explicativos en una lista de reproducción en el canal
Algún día los ordenaré en listas jaja
Grande brother, un crack en todo sentido. Sigue adelante.
Gracias! Al fin alguien me explica el porqué no me gusta el comportamiento extraño de JavaScript comparado con otro lenguaje que se ejecuta línea por línea sin dolores de cabeza.
Grande, estoy con una migración de front a angular y mola saber estas cositas
Excelente explicacion! Ya conocia el event loop y asynchronous JavaScript, pero siempre sienta bien repasar los conceptos y has sido muy claro durante toda la explicacion!
Tokiooooooooo
Se agradecen esta clase de explicaciones desgranadas para asentar conocimientos. Bastante crack Hulio.
Brillante explicación! Saludos desde Buenos Aires!
Justo hoy estaba buscando acerca de este tema de los workers, async-await, etc... Muy interesante y útil muchas gracias por el video
Excelente video!! Justo ayer me puse a averiguar un poco más del async/await al ver tu video de tips
Que excelente vídeo. Hace un día atrás justo estaba viendo algo relacionado con esto. xd Aún no me queda claro del todo, pero ya me hago una idea de cómo funciona.
Muchas gracias por tan buen contenido. :)
¡Excelente! Es para verlo más de una vez.
Mil gracias.
Justo cuando estaba investigando y aprendiendo de sockets y node internals sacas este increíble video muy bien explicado
Está súper interesante este video son raros las personas que explican este tipo de cosas , ojalá hagas más vídeos explicando sobre estos temas
nuevo video!!!!!. Gracias antonio por tanto contenido este bello noviembre
Soy del área de desarrollo de software y debo ser honesto.
He visto muchos videos sobre explicaciones de x tecnología y hay que reconocer algo, muchos extienden sus explicaciones de forma innecesaria cuando el tema no da para tanto.
Hablando propiamente de los videos de tu canal, he notado que el contenido es muy interesante, con explicaciones claras y de lo mejor en habla hispana, sin tanto choro, cómo debe de ser: explicaciones con ejercicios claros.
Felicitaciones.
Muy buen video. Muchos lenguajes ya estan empezando a implementar async y await. Pero javascript es muy especial
Muchas gracias, admiro el tiempo tiempo que le dedicaste y como lo ilustraste, muy bien explicado execelente video.
Muy bueno pana, sigue así!!
Que gran video te mandaste! Muy buen explicación apoyado por las buenas animaciones
brutalmente/violentamente informativo y entretenido el video, la crema de la crema, la cereza del pastel
que complejo y a la vez la explicación es concreta, nomas even loop en los fetch :D
Muchas gracias por hacer el video!!! que bien explicado.
Holaaa Antonio, crack para el video, saludos desde chile!
Hermano tus videos son una joya, sigue trabajando así 🙌🏼
Simplemente excelente tu explicación!!!
Felicidades, explicaste en 20 mninutos lo que uno entiende intuitivamente
Muy buen video! Me encanto. Es un tema que no se suele explicar así que muchas gracias!
Tan buen video! (recomiendo mucho ese video sobre los callbacks de dos horas)
Que buen contenido, siempre me gusta comprender cómo funcionan las cosas a otro nivel. gracias
El concepto de asyn await en otros lenguajes se traduce a Hilos (Thread) todo es cuestión de apreciación, Así lo veo yo , ya que ejecuta órdenes en segundo plano de manera asíncrona si alterar la ejecución normal del programa.
Buen contenido, me ayudo bastante a entender lo del async-await
sentí mucha pasión en el "como cuando la que te gusta te deja en visto" jaja
La mejor explicación que he encontrado. Gracias
Tu curso de 4tomik lo explica a detalle 😎
Muchas gracias por compartir Antonio 🙏
Me encanto el video, gracias por compartir tu conocimiento.
Gracias por documentar esto! gran trabajo.
Sos un crack Antoniooo. Buen vidio
Excelente explicación! Muy claro,, muy buen video!
Muy buena explicación 😎👋
Nuevo sub, buen contenido 👌
Muchas gracias por compartir conocimiento.
Muy buen video, gracias!
Esto es contenido de calidad 🥺 excelente vídeo!
El video me pareció muy entretenido y además la explicación con los gráficos muy interesante, gracias a estos videos se aprende algo cada día.
la gran falencia de los juniors: aprender solo lo tecnico y no entender el porque de las cosas..... muchas gracias por esta gran explicación, se los compartire a mis alumnos.
Grande ing, que maravilla de canal.
tus vídeos de los hilos con JS son GOD
este video para entender la reactividad en Java es oro
Felicitaciones, un video impresionante
Amo tus videos 😍
Gracias ! Espero algún día entender este video ! xD
Prueba el vídeo de 2 horas jajaja, este es un resumen
Excelente explicación
Visto en 04/11/2022
Excelente video!! Muy buena explicación
Simplemente magistral
Otros lenguajes sí lo necesitan por los Tasks ... solo que en JS es mandatorio si necesitas hacer un bloqueo ya que por defecto este no existe por el event loop
Excelente el video!
Saludos desde El salvador te admiro mucho
Justamente estaba experimentando con concurrencia en servidores web hechos en rust, es un tema muy interesante y que da para rato
Gracias Amigo!!, saludos,
He visto que igual C# usa async y await, que Interesante explicación
Por fin alguien que sabe de lo que habla.
Muchas gracias!
El vídeo esta buenisimo, pero por favor no pongas publicidad a mitad o en medio del vídeo.
Gran video Antonio, 💯💯💯!, que paso con el canal 4tomic lo continuaras en algún momento . Saludos desde Uruguay
Gracias por la explicación !👌
Bro he visto videos tuyos antiguos y los comparo con los nuevos y solo de verte me doy cuenta lo orgulloso y arrogante que te has vuelto debido a tu conocimiento. Amigo el conocimiento envanece pero el amor edifica. Dale más suave y con humildad. Recuerda que antes de la destrucción está el orgullo. Así que bájale hombre.saca tiempo para estudiar sobre la humildad. Te lo digo porque te quiero ver bien hombre. Eso es todo.
Mira lo humilde que era antes 😎🥵
ruclips.net/video/VoJOOx2WLy0/видео.html
15:16 ¿Hay alguna forma de manipular el flujo del thread pool para evitar que el so genere estas pelas de hilos?
Me agrada tu contenido, tus temas teoricos definitivamente complementan mucho el quehacer practico en la programación
Eres un fk crack! Muchas gracias
Que buena explicacion, ni en la universidad explican asi
A mi me gusta mucho todas estas cosas. Es uno de los canales que más me gustan. Pones en dibulgación un poco más de profundidad
Tus videos son demasiado buenos, saludos desde Paraguay
Excelente explicacion
Soy nuevo ej JS y tus videos han sido de gran ayuda.Ttu canal es excelente, por lo bien explicado y la diversidad de temas que tratas.( Like and subcribed allready 😆 )
Quería preguntarte referente a este tema que diferencia hay entre las siguientes :
async function traerDeInet(url){
let datos = await fetch(url);
console.log(datos);
}
function traerDeInet(url){
var promise= fetch(url);
promise.then((datos) => {console.log(datos);});
return promise;
}
Desde ya muchas gracias y adelante que vas sobre rieles.
No hay ninguna diferencia, es lo mismo. El async-await es para escribir promesas más fácilmente.
@@AntonioSarosi Muchas gracias por tu pronta respuesta Antonio. Saludos desde Argentina, y felicitaciones por el canal.
Excelente video. Suscribed!
Raios !!!... que buen video amigo.
Muito bom, excelente a explicação | Muy bueno, excelente explicación
Entiendo que es parte de la "simplificacion", pero aqui se esta utilizando la misma palabra "hilo" para referirse a 3 cosas distintas: "procesos" (los que corre cada core del CPU), "hilos/threads" (cada core puede correr varios de estos), y coroutinas, los event-loops funcionan con coroutines, un script de nodejs corre generalmente en un solo hilo con un event-loop que ejecuta multiples coroutines
Me refiero a los hilos que usa Node.js para bloquearse en Entrada/Salida. El hilo de JS no se bloquea, cualquier tarea bloqueante se ejecuta en el thread pool de Libuv. Las peticiones de red pueden incluir un DNS lookup, eso por ejemplo se ejecuta en el thread pool. Las lecturas de ficheros también.
docs.libuv.org/en/v1.x/threadpool.html
Lo que hace Node.js para ejecutar Javascript en un solo hilo es otra cosa, imagino que para pausar las funciones asíncronas cuando encuentra un await o pausar generadores en un yield usará algo similar a coroutines pero no lo sé, eso no lo he investigado.
Por fin lo he entendido el event loop
Antonio as algo con ensamblador, saludos eres de los mejores
Me encantaría aprender a programar, cuando veo vídeos como este, se me quitan las ganas.
Pues no los veas 👍, espero haberte ayudado 😂
@@AntonioSarosi Disculpa, era sarcasmo. No se trata de eso, es que entiendo (creo) los conceptos de sincronismo y asincronismo, pero para una persona que está comenzado creo que se merecen una advertencia que esto es programación avanzada, que si estas desarrollando una aplicación elemental con un carrito de compras, lo más probable es que no aplique en ese ámbito. Espero hayas entendido mi posición.
Mucha calidad en tus videos