La técnica conocida como multihilo (del inglés: multithreading) permite a las unidades centrales de procesamiento (CPU) aumentar el rendimiento del núcleo de un procesador sin necesidad de alterar la frecuencia. El procesador, con base en esta técnica, puede procesar varias tareas de forma simultánea. Cada hilo, desde un punto de vista técnico, es una hebra que está conectada a un proceso y éstos constituyen, a su vez, un programa individual. El objetivo principal de esta técnica es optimizar la CPU, reduciendo los tiempos de espera entre procesos.[1]

El paradigma de multihilo ha llegado a ser más popular a medida que los esfuerzos para llevar más adelante el paralelismo a nivel de instrucción se han atascado desde finales de los años 1990. Esto permitió que reemergiera a una posición destacada el concepto de computación de rendimiento a partir del más especializado campo del procesamiento transaccional:

  • Aunque es muy difícil acelerar un solo hilo o un solo programa, la mayoría de los sistemas de computadores son realmente multitarea entre múltiples hilos o programas.
  • Las técnicas que permitirían acelerar el rendimiento total del procesamiento del sistema en todas las tareas (tasks) darían como resultado un aumento significativo del rendimiento.

Las dos principales técnicas para computación de rendimiento son el multiproceso y el multihilo.

Una cierta crítica del multihilo incluye:

  • Los múltiples hilos pueden interferir uno con el otro al compartir recursos de hardware como cachés o Translation Lookaside Buffer (TLB).
  • Los tiempos de ejecución de un solo hilo no son mejorados, sino por el contrario, pueden ser degradados.
  • El soporte de hardware para multihilo es más visible al software que el multiprocesamiento, por lo tanto requiriendo más cambios tanto a las aplicaciones como el sistema operativo.

Las técnicas de hardware usadas para soportar multihilo a menudo paralelizan las técnicas de software usadas para la multitarea de los programas de computadora.

Lenguajes de programación que soportan multihilo

editar

Referencias

editar
  1. «Multithreading: más potencia para los procesadores». IONOS Digitalguide. Consultado el 25 de julio de 2022. 
  2. «Definir y ejecutar threads en java». 
  3. «Threads - The Rust Programming Language». doc.rust-lang.org (en inglés). Consultado el 15 de septiembre de 2017. 

📚 Artikel Terkait di Wikipedia

Composición de funciones (informática)

Benjamin C.; Turner, David N. (2000), «Pict: A programming language based on the pi-calculus», Proof, Language, and Interaction: Essays in Honour of Robin

C (lenguaje de programación)

estandarización del lenguaje de programación C Datos: Q15777 Multimedia: C (programming language) / Q15777 Libros y manuales: Programación en C Recursos didácticos:

JTAG

analysis and debug, In-System Programming Göpel electronic SCANFLEX, JTAG / Boundary Scan test and In-System Programming, debug, emulation. Corelis ScanExpress

Vix (servicio de streaming)

de enero de 2023. Consultado el 13 de enero de 2023.  «ViX and ViX+ Programming February 2023». corporate.televisaunivision.com. 30 de enero de 2023

Biblioteca estándar de C++

usan la extensión «.h».[cita requerida] Bjarne Stroustrup: The C++ Programming Language, Addison-Wesley, ISBN 0-201-70073-5 Rogue Wave C++ Standard Library

IntelliJ IDEA

Andrew Binstock (22 de septiembre de 2010). «InfoWorld review: Top Java programming tools». InfoWorld.  «Google releases Android Studio 1.0, the first stable

Cilk

Practice of Parallel Programming (PPoPP), pp. 207–216, 1995. Sitio web oficial Cilk Project website at MIT The Open source Cilk Plus website at Intel Archivado

Apple IIc

1987 (ISBN 0-201-17752-8) Andrews, Mark. Apple roots: assembly language programming for the Apple IIe & IIc, Berkeley, Calif.: Osborne McGraw-Hill, c1986