Programación Paralela con OmniThreadLibrary
Programación Paralela con OmniThreadLibrary

¡EMBARGO!

Periodistas y blogueros: por favor no publiquen nada sobre ésto hasta que finalice el embargo.

Por favor contáctate con el autor para más información sobre cuándo ocurrirá éso

Retirado

Este libro ya no está disponible para la venta.

Programación Paralela con OmniThreadLibrary

Este libro está 60% completo

Este libro se actualizó por última vez el 2013-04-22.

Sobre este libro

Este libro es sobre programación paralela con OmniThreadLibrary (otl.17slon.com), una biblioteca multi-hilos para Delphi. Puedes obtener más información sobre el libro y el estado actual de cada capítulo en thedelphigeek.com.

Encontrarás aquí mismo la versión original en Inglés: Parallel Programming with OmniThreadLibrary

Dado que este es un trabajo en progreso, usualmente pasará algunas semanas para que los nuevos capítulos publicados en la versión en Inglés estén disponibles en Español.

This book is a translation into Español of Parallel Programming with OmniThreadLibrary which was originally written in English.

Sobre de los autores

Primož Gabrijelčič
Primož Gabrijelčič

Primož Gabrijelčič, autor del libro en Inglés, es un programador añejo de Delphi, escritor de las revistas The Delphi Magazine, Monitor y Blaise Pascal y colaborador frecuente de la comunidad Delphi-SI. Sus divagaciones al respecto de Delphi se recogen en el blog The Delphi Geek.

A lo largo de su carrera ha producido varios proyectos de código abierto, tales como el profiler de Delphi GpProfile (ahora mantenido por terceros). Sus proyectos activos incluyen OmniThreadLibrary, una biblioteca de multi-hilos para Delphi y varias herramientas Delphi de código abierto, publicadas en el repositorio GpDelphiUnits.

Juan Antonio Castillo (jachguate), traductor al Español, es un programador con más de 15 años en Delphi y 20 con Pascal. MVP de Embarcadero, es conferencista, capacitador, presentador y consultor internacional de Delphi. Ha sido moderador de Club Delphi y colaborador de otros sitios y comunidades a lo largo de su vida en línea, publica con regularidad en el blog de jachguate.

Juan Antonio Castillo H.
Juan Antonio Castillo H.

Primož Gabrijelčič, autor del libro en Inglés, es un programador añejo de Delphi, escritor de las revistas The Delphi Magazine, Monitor y Blaise Pascal y colaborador frecuente de la comunidad Delphi-SI. Sus divagaciones al respecto de Delphi se recogen en el blog The Delphi Geek.

A lo largo de su carrera ha producido varios proyectos de código abierto, tales como el profiler de Delphi GpProfile (ahora mantenido por terceros). Sus proyectos activos incluyen OmniThreadLibrary, una biblioteca de multi-hilos para Delphi y varias herramientas Delphi de código abierto, publicadas en el repositorio GpDelphiUnits.

Juan Antonio Castillo (jachguate), traductor al Español, es un programador con más de 15 años en Delphi y 20 con Pascal. MVP de Embarcadero, es conferencista, capacitador, presentador y consultor internacional de Delphi. Ha sido moderador de Club Delphi y colaborador de otros sitios y comunidades a lo largo de su vida en línea, publica con regularidad en el blog de jachguate.

Table of Contents

  • Créditos
  • Traducción
  • Acerca de jachguate
  • Introducción
  • Convenciones de Formato
  • Trabajo en progreso
  • Anuncios
  • Notas de la publicación
  • 1 Introducción a Multi-hilos
  • 1.1 El almuerzo gratis se acabó
  • 2 Introducción a OmniThreadLibrary
  • 2.1 Requerimientos
  • 2.2 Licencia
  • 2.3 Instalación
  • 2.3.1 Instalación del Paquete de tiempo de Diseño
  • 2.4 ¿Por qué utilizar OmniThreadLibrary?
  • 2.5 Tareas vs. Hilos
  • 2.6 Bloqueo vs. Mensajería
  • 2.7 TOmniValue
  • 2.8 Interfaces fluidas
  • 3 Multi-hilos de alto nivel
  • 3.1 Introducción
  • 3.1.1 Ciclo de vida de una abstracción
  • 3.1.2 Métodos Anónimos, Métodos y Procedimientos
  • 3.1.3 Pooling
  • 3.2 Colección con bloqueos
  • 3.2.1 IOmniBlockingCollection
  • 3.2.2 Regulación
  • 3.3 Configuración de tareas
  • 3.4 Async
  • 3.4.1 Manejo de Excepciones
  • 3.5 Async/Await
  • 3.6 Futuro
  • 3.6.1 Interfaz IOmniFuture
  • 3.6.2 Detectar si se ha completado
  • 3.6.3 Cancelación
  • 3.6.4 Manejo de Excepciones
  • 3.6.5 Ejemplos
  • 3.7 Join
  • 3.7.1 Interfaz IOmniParallelJoin
  • 3.7.2 Interfaz IOmniJoinState
  • 3.7.3 Cancelación
  • 3.7.4 Manejo de Excepciones
  • 3.8 Tarea en paralelo
  • 3.8.1 Interfaz IOmniParallelTask
  • 3.8.2 Ejemplo
  • 3.8.3 Manejo de Excepciones
  • 3.8.4 Ejemplos
  • 3.9 Trabajador en segundo plano
  • 3.9.1 Conceptos básicos
  • 3.9.2 Interfaz IOmniBackgroundWorker
  • 3.9.3 Inicialización de la tarea
  • 3.9.4 Configuración del elemento de trabajo
  • 3.9.5 Interfaz del Elemento de Trabajo
  • 3.9.6 Ejemplos
  • 3.10 Pipeline
  • 3.10.1 Contexto
  • 3.10.2 Conceptos básicos
  • 3.10.3 IOmniPipeline
  • 3.10.4 Generadores, Mutadores y Agregadores
  • 3.10.5 Regulación
  • 3.10.6 Etapas paralelas
  • 3.10.7 Excepciones
  • 3.10.8 Ejemplos
  • 3.11 For Each
  • 3.11.1 Cooperación
  • 3.11.2 Iterando sobre …
  • 3.11.2.1 … Rangos de Números
  • 3.11.2.2 … Colecciones Enumerables
  • 3.11.2.3 … Colecciones enumerables multi-hilo
  • 3.11.2.4 … Colecciones con Bloqueo
  • 3.11.2.5 … Cualquier cosa
  • 3.11.3 Proporcionar una Entrada Externa
  • 3.11.4 IOmniParallelLoop
  • 3.11.5 Preservar el orden de salida
  • 3.11.6 Agregación
  • 3.11.7 Cancelación
  • 3.11.8 Inicialización y Finalización de Tarea
  • 3.11.9 Manejo de excepciones
  • 3.11.10 Interioridades
  • 3.11.10.1 Proveedor de datos de origen
  • 3.11.10.2 Gestor de datos
  • 3.11.10.3 Cola local
  • 3.11.10.4 Ordenación de la salida
  • 3.11.11 Ejemplos
  • 3.12 Fork/Join
  • 3.12.1 IOmniForkJoin
  • 3.12.2 IOmniCompute
  • 3.12.3 IOmniCompute<T>
  • 3.12.4 Excepciones
  • 3.12.5 Ejemplos
  • 4 Multi-hilos de bajo nivel
  • 4.1 Pool de Threads (Thread Pooling)
  • 4.2 Colecciones libres de Bloqueo
  • 4.2.1 Pila con límites (Bounded Stack)
  • 4.2.2 Cola con límites (Bounded Queue)
  • 4.2.3 Cola dinámica (Dynamic Queue)
  • 4.3 Tareas Simples
  • 4.3.1 Comunicación
  • 4.3.2 Invoke
  • 4.3.3 Excepciones
  • 4.3.4 MonitorWith
  • 4.3.5 Cancellation Token / CancelWith
  • 4.3.6 Lock / WithLock
  • 4.3.7 Counter / WithCounter
  • 4.3.8 Task Group
  • 5 Sincronización
  • 5.1 Critical Sections
  • 5.1.1 IOmniCriticalSection
  • 5.1.2 TOmniCS
  • 5.1.3 Locked
  • 5.1.3.1 ¿Por qué no utilizar TMonitor?
  • 5.2 TOmniMREW
  • 5.3 Token de Cancelación
  • 5.4 Valor con espera
  • 5.5 Semáforo Inverso
  • 5.6 Inicialización
  • 5.6.1 Inicialización Pesimista
  • 5.6.2 Inicialización Optimista
  • 6 Miscelaneos
  • 6.1 TOmniValue
  • 6.2 TOmniCounter
  • 6.3 TGp4AlignedInt y TGp8AlignedInt64
  • 7 How-to
  • 7.1 Barrido de archivos en segundo plano
  • 7.2 Async/Await
  • 7.3 Descarga Web y Almacenamiento en Base de Datos
  • 7.4 For paralelo con Salida Sincronizada
  • 7.5 Trabajador en segundo plano y Particionado de Lista
  • 7.6 Producción de datos en paralelo
  • 7.7 Construir un pool de conexiones
  • 7.7.1 De la teoría a la práctica
  • 7.7.2 Ejecutando la demo
  • 7.8 QuickSort y Max Paralelo
  • 7.8.1 QuickSort
  • 7.8.2 Max Paralelo
  • 7.9 Búsqueda Paralela en un Árbol
  • 7.10 Múltiples Trabajadores con Múltiples Frames
  • 7.10.1 El Trabajador
  • 7.10.2 El Frame
  • 7.10.3 El Formulario
  • 7.11 OmniThreadLibrary y Bases de Datos
  • 7.11.1 Modelo de Base de Datos
  • 7.11.2 Frame y Trabajador
  • 7.11.2.1 Conectar a la Base de Datos
  • 7.11.2.2 Recuperando Datos
  • 7.11.3 Programa Principal
  • 7.12 OmniThreadLibrary y COM/OLE
  • 8 Glosario
  • 9 Aplicaciones Demo

Authors have earned$9,219,630writing, publishing and selling on Leanpub,
earning 80% royalties while saving up to 25 million pounds of CO2 and up to 46,000 trees.

Más información sobre cómo escribir en Leanpub

Leanpub incondicional, sin riesgo, 100% de felicidad garantizada

Durante los primeros 45 días de compra, puedes obtener un reembolso del 100% de cualquier compra Leanpub, en dos clics. Procesamos las restituciones manualmente, así que puede tomarse unos días en aparecer. Véase términos completos.

Actualizaciones gratis. Libre de DRM.

¡Si compras un libro Leanpub obtienes actualizaciones gratis siempre y cuando el autor actualice el libro! Varios autores usan Leanpub para publicar sus libros en progreso mientras los escriben. Todos los lectores obtienen actualizaciones gratis, independientemente de cuándo compraron el libro o cuánto pagaron (incluyendo si fue gratis).

La mayoría de los libros Leanpub se encuentran disponibles en PDF (para computadores), EPUB (para teléfonos y tabletas) y MOBI (para Kindle). Los formatos que un libro incluye se muestran en la esquina superior derecha de esta página.

Finalmente, los libros Leanpub no tienen ninguna de las cosas sin sentido sobre protección de copia DRM, así que puedes leerlos fácilmente en cualquier dispositivo que se soporta.

Aprende más sobre los formatos de Leanpub y dónde puedes leerlos

Escribir y publicar en Leanpub

Los autores y editores usan Leanpub para publicar libros electrónicos sorprendentes en curso y completados, como éste. ¡También puedes utilizar Leanpub para escribir, publicar y vender tu libro! Leanpub es una potente plataforma para autores serios, que combina un flujo de trabajo de escritura y publicación simple y elegante con una tienda centrada en la venta de libros electrónicos en progreso. Leanpub es una máquina de escribir mágica para los autores: basta con escribir en texto plano, y para publicar tu libro electrónico, simplemente haz clic en un botón. Realmente es así de fácil.

Más información sobre cómo escribir en Leanpub