Programación Paralela con OmniThreadLibrary

¡EMBARGO!

Periodistas y bloggers: ¡por favor no publiquen nada sobre esto hasta que se levante el embargo!

Por favor, contacte al autor para más información sobre cuándo será esto.

Retirado

Este libro ya no está disponible para la venta.

Programación Paralela con OmniThreadLibrary

Sobre el 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.

Este libro es una traducción al Español de Parallel Programming with OmniThreadLibrary, que fue escrito originalmente en Inglés.

Sobre 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.

Índice

  • 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

Garantía de satisfacción 100% de Leanpub por 60 días

Durante los 60 días posteriores a la compra, puedes obtener un reembolso del 100% en cualquier compra de Leanpub, en dos clics.

Técnicamente, esto es arriesgado para nosotros, ya que tendrás los archivos del libro o curso de cualquier manera. Pero estamos tan seguros de nuestros productos y servicios, y de nuestros autores y lectores, que nos complace ofrecer una garantía de devolución total del dinero para todo lo que vendemos.

Solo puedes descubrir qué tan bueno es algo probándolo, y debido a nuestra garantía de devolución del 100% del dinero, ¡literalmente no hay riesgo al hacerlo!

Entonces, no hay razón para no hacer clic en el botón Agregar al carrito, ¿verdad?

Ver términos completos...

Gane $8 por una compra de $10, y $16 por una compra de $20

Pagamos regalías del 80% en compras de $7.99 o más, y regalías del 80% menos una tarifa fija de 50 centavos en compras entre $0.99 y $7.98. Usted gana $8 en una venta de $10, y $16 en una venta de $20. Así que, si vendemos 5000 copias no reembolsadas de su libro por $20, usted ganará $80,000.

(Sí, algunos autores ya han ganado mucho más que eso en Leanpub.)

De hecho, los autores han ganadomás de $14 millones escribiendo, publicando y vendiendo en Leanpub.

Aprenda más sobre escribir en Leanpub

Actualizaciones gratuitas. Sin DRM.

¡Si compras un libro de Leanpub, recibirás actualizaciones gratuitas mientras el autor actualice el libro! Muchos autores utilizan Leanpub para publicar sus libros mientras los escriben. Todos los lectores reciben actualizaciones gratuitas, sin importar cuándo compraron el libro o cuánto pagaron (incluso si fue gratis).

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

Finalmente, los libros de Leanpub no tienen ninguna protección DRM sin sentido, por lo que puedes leerlos fácilmente en cualquier dispositivo compatible.

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

Escriba y Publique en Leanpub

¡Puede usar Leanpub para escribir, publicar y vender fácilmente libros electrónicos y cursos en línea, tanto en progreso como terminados!

Leanpub es una plataforma potente para autores serios, que combina un flujo de trabajo de escritura y publicación simple y elegante con una tienda enfocada en la venta de libros electrónicos en progreso.

Leanpub es una máquina de escribir mágica para autores: solo escriba en texto plano y, para publicar su libro electrónico, simplemente haga clic en un botón. (O, si está produciendo su libro electrónico a su manera, ¡incluso puede subir sus propios archivos PDF y/o EPUB y luego publicar con un solo clic!) Realmente es así de fácil.

Aprenda más sobre escribir en Leanpub