Fundamentos de Hilos en Java
La concurrencia en Java se maneja principalmente a través de su API de Hilos (Threads), que permite la ejecución simultánea de múltiples tareas. Esto optimiza el uso de la CPU y mejora el rendimiento general de las aplicaciones.
Conceptos Clave
Procesos vs. Hilos
Proceso: Unidad de asignación de recursos del sistema operativo.
Hilo: Unidad de ...
Publicado el 7-28 17:28
Volatilidad y Reordenamiento de Instrucciones en Java
Visibilidad de Memoria
La visibilidad de memoria es un factor crítico en la seguridda de hilos. Considere este ejemplo donde un hilo (t1) permanece en bucle hasta que otro (t2) modifica una variable compartida:
private static int valor;
public static void main(String[] args) {
Thread t1 = new Thread(() -> {
while (valor == 0) {}
...
Publicado el 7-27 08:01
Manejo de Variables Locales por Hilo con ThreadLocal en Java
La clase ThreadLocal en Java ofrece un mecanismo para almacenar datos que son específicos de un hilo de ejecución. A diferencia de las variables normales compartidas entre hilos, una variable ThreadLocal proporciona una copia independiente de su valor para cada hilo que accede a ella. Esto significa que cada hilo opera sobre su propia versión d ...
Publicado el 7-24 23:41
Concurrencia en Go: Cómo resolver problemas de concurrencia con Golang
Como desarrollador backend, paso la mayor parte del tiempo trabajando con PHP y Go. Sin duda, PHP es práctico y rápido para prototipar, especialmente en el modo php‑fpm tradicional (un proceso por petición). Sin embargo, para servicios de streaming en vivo con alta concurrencia, PHP se quedaba corto. Aunque existen alternativas como Swoole, su ...
Publicado el 7-24 03:03
Simulación Java Multihilo del Bucle Temporal en la Película 'Triangle'
Este programa emplea Java multihilo para replicar el ciclo central de la película 'Triangle', utilizendo conceptos como hilos que escapan, contaminación de recursos compartidos y recursión infinita.
import java.util.*;
import java.util.concurrent.*;
import java.util.concurrent.atomic.AtomicInteger;
/**
* Simulación del bucle temporal de 'Tria ...
Publicado el 7-23 18:59
Fundamentos de Hilos en Java
La concurrencia en Java se maneja principalmente a través de su API de Hilos (Threads), que permite la ejecución simultánea de múltiples tareas. Esto optimiza el uso de la CPU y mejora el rendimiento general de las aplicaciones.
Conceptos Clave
Procesos vs. Hilos
Proceso: Unidad de asignación de recursos del sistema operativo.
Hilo: Unidad de ...
Publicado el 7-22 03:12
Gestión de Hilos en Java: Profundizando en los `ThreadPoolExecutor`
La creación y destrucción de hilos son operaciones costosas en términos de recursos del sistema. Además, el cambio de contexto entre hilos requiere una frecuente intervención de la CPU, lo que subraya la ineficiencia de crear un nuevo hilo para cada tarea. Para optimizar el uso de recursos y mejorar el rendimiento de aplicaciones concurrentes, ...
Publicado el 7-21 19:45
Implementación de un Pool de Memoria de Alta Concurrencia en C++
Introducción del Proyecto
Este proyecto se enfoca en construir un pool de memoria de alta concurrencia inspirado en tcmalloc (Thread-Caching Malloc) de Google. La implementación simplificada busca capturar la esencia de tcmalloc, que es conocido por su eficiencia en entornos multihilo. Los conocimientos previos requeridos incluyen programación ...
Publicado el 7-20 10:19
Acceso concurrente asíncrono con aiohttp en Python y manejo de URL dependientes
Uso de programación asíncrona para acceso concurrente: aiohttp
La mayoría de las veces, simplemnete necesitarás acceder a una URL específica, usando directamente el método asíncrono de aiohttp.
Sin embargo, a veces es necesario acceder a múltiples niveles de URL donde el siguiente nivel depende del resultado del anterior, requiriendo esperar a ...
Publicado el 7-19 06:58
Desarrollo Embebido: Evolución de Bare-Metal a RTOS y Criterios Prácticos
Limitaciones Críticas del Desarrollo Bare-Metal
La programación bare-metal ejecuta aplicaciones directamente sobre el hardware sin sistema operativo. Aunque sencilla inicialmente, presenta desafíos en proyectos complejos.
Falsa Concurrencia y Desperdicio de CPU
El superloop central secuencial fuerza esperas bloqueantes que subutilizan el proces ...
Publicado el 7-18 18:09