Programación paralela en Java
Curso 1
- 19 horas
- 4,6 (1.205 valoraciones)
Detalles del curso
¿Qué aprenderás?
Este curso enseña a los profesionales y estudiantes de la industria los conceptos fundamentales de la programación paralela en el contexto de Java 8. La programación paralela permite a los desarrolladores aprovechar las computadoras de múltiples núcleos para acelerar el rendimiento de las aplicaciones mediante el uso de múltiples procesadores simultáneamente. Al final del curso, sabrá cómo utilizar marcos de programación paralelos populares en Java (como ForkJoin, Stream y Phaser) para escribir programas paralelos para una amplia variedad de plataformas multinúcleo, incluidos servidores, computadoras de escritorio y dispositivos móviles. dispositivos, y también aprenderá sobre sus fundamentos teóricos, incluidos gráficos computacionales, paralelismo ideal, aceleración paralela, ley de Amadel, carreras de información y determinismo.
¿Por qué deberías realizar este curso?
- Todas las computadoras son computadoras multinúcleo, por lo que es importante que aprendas a ampliar tus conocimientos de programación secuencial a Java.
- Java 7 y Java 8 introdujeron nuevos marcos para la programación paralela (ForkJoin, Stream) que cambiaron significativamente los paradigmas de la programación paralela desde las primeras décadas de Java.
- Cada uno de los cuatro módulos del curso tiene un proyecto naznachti en miniatura, que le brindará una experiencia práctica útil para aplicar los conceptos aprendidos una vez finalizado el curso.
- Durante el curso necesitarás acceso en línea al profesor y a los mentores para recibir respuestas personalizadas a tus preguntas en los foros.
Los resultados de aprendizaje deseados del curso incluyen:
- Teoría del paralelismo: gráficas computacionales, trabajo, rango, paralelismo ideal, aceleración paralela, ley de Amadel, carreras de información y determinismo.
- Paralelismo de tareas con el marco ForkJoin de Java
- Simultaneidad funcional utilizando los marcos Future y Stream de Java
- Paralelismo a nivel de bucle con extensiones para barreras y agrupación de iteraciones (fragmentación)
- Paralelismo del flujo de datos utilizando el marco Phaser y tareas basadas en datos
Dominar estos conceptos le permitirá aplicarlos inmediatamente en el contexto de programas Java multinúcleo y también le proporcionará la base para dominar otros sistemas de programación paralelos de los que se beneficiará en el futuro (como C++11, OpenMP, Biblioteca paralela de tareas .Net).
habilidades que adquirirás
- Categoría: flujo de datos
- Categoría: programación paralela
- Categoría: Metodología Java
Programación sincronizada en Java
Curso 2
- 18 horas
- 4,5 (655 valoraciones)
Detalles del curso
¿Qué aprenderás?
Este curso enseña a estudiantes y profesionales de la industria los conceptos fundamentales de la programación sincronizada en el contexto de Java 8. La programación sincronizada permite a los desarrolladores gestionar de manera eficiente y correcta el uso de recursos compartidos en programas paralelos. Al finalizar el curso sabrás utilizar estructuras básicas de sincronización en Java como procesos (Threads), bloqueos, partes críticas, variables atómicas, aislamiento, modelos de actores, sincronización optimista y colecciones sincronizadas, así como sus fundamentos teóricos. (como garantías de progreso, Deadlock, Livelock, inanición y linealización).
¿Por qué deberías realizar este curso?
- Es importante conocer los fundamentos teóricos de la sincronización para evitar errores de programación comunes pero sutiles.
- Java 8 ha actualizado la mayoría de las estructuras de sincronización desde los primeros días de procesos y bloqueos.
- Durante el curso necesitarás acceso en línea al profesor y a los mentores para recibir respuestas personalizadas a tus preguntas en los foros.
- Cada uno de los cuatro módulos del curso tiene un proyecto naznachti en miniatura, que le brindará una experiencia práctica útil para aplicar los conceptos aprendidos una vez finalizado el curso.
Los resultados de aprendizaje deseados del curso incluyen:
- Teoría de la sincronización: garantías de progreso, punto muerto, bloqueo en vivo, inanición, linealización
- Uso de procesos y bloqueos en una configuración ordenada/desordenada en Java
- Variables atómicas y aislamiento.
- Sincronización optimista y colecciones sincronizadas en Java (como colas sincronizadas, Hashmaps sincronizados)
- Modelo de reproductor en Java
Dominar estos conceptos le permitirá aplicarlos inmediatamente en el contexto de programas Java sincronizados y le ayudará a dominar otros sistemas de programación sincronizados de los que se beneficiará en el futuro (como subprocesos POSIX, subprocesos .NET).
habilidades que adquirirás
- categoría: Sincronización (Ciencias de la Computación)
- Categoría: Modelo de jugador
- Categoría: Control de sincronización optimista
- Categoría: Programación sincronizada
Programación distribuida en Java
Curso 3
- 17 horas
- 4,5 (489 valoraciones)
Detalles del curso
¿Qué aprenderás?
Este curso enseña a estudiantes y profesionales de la industria los conceptos fundamentales de la programación distribuida en el contexto de Java 8. La programación distribuida permite a los desarrolladores utilizar múltiples nodos en un centro de datos para aumentar el rendimiento y reducir la latencia de las aplicaciones seleccionadas. Al final del curso, sabrá cómo utilizar marcos de programación distribuidos populares para programas Java, incluidos Hadoop, Spark, Sockets, Remote Method Invocation (RMI), Multicast Sockets, Kafka, Message Passing Interface (MPI), así como varios enfoques para combinar la distribución del trabajo y los procesos de multiprogramación.
¿Por qué deberías realizar este curso?
- Todos los servidores de los centros de datos están organizados como conjuntos de servidores distribuidos y también es importante aprender a utilizar varios servidores para aumentar el ancho de banda y reducir la latencia.
- Además de aprender marcos específicos para la programación distribuida, el curso le enseñará cómo combinar el paralelismo multinúcleo y la programación distribuida en un enfoque unificado.
- Cada uno de los cuatro módulos del curso tiene un proyecto naznachti en miniatura, que le brindará una experiencia práctica útil para aplicar los conceptos aprendidos una vez finalizado el curso.
- Durante el curso necesitarás acceso en línea al profesor y a los mentores para recibir respuestas personalizadas a tus preguntas en los foros.
Los resultados de aprendizaje deseados del curso incluyen:
- Programación distribuida Map-Reduce en Java usando los frameworks Hadoop y Spark
- Programación cliente-servidor utilizando las interfaces de invocación de método remoto (RMI) y socket de Java
- Programación para el paso de mensajes con la ayuda de Message Passing Interface (MPI) en Java
- Enfoques para combinar la distribución del trabajo con la programación multiproceso, incluidos procesos y procesos, actores distribuidos y programación reactiva.
Dominar estos conceptos le permitirá aplicarlos inmediatamente en el contexto de programas Java distribuidos y también le proporcionará la base para dominar otros sistemas de programación distribuidos que encontrará en el futuro (como Scala o C++).
habilidades que adquirirás
- categoría: Programación distribuida
- Categoría: Modelo de jugador
- Categoría: programación paralela
- Categoría: programación reactiva