Entradas con la etiqueta programación concurrente

Introducción a la concurrencia.

Phileas. Iniciativa aprendizaje bases desarrollo orientado a objetosAyer vimos en clase una pequeña introducción a la programación concurrente. Necesitaríamos un curso entero para entrar en todos los detalles de esta temática, y eso no es el objetivo en esta asignatura. Sin embargo, existen expertos en programación que recomiendan que se diseñen los programas bajo el punto de vista concurrente, aunque no lo sean. Es de importancia saber que el diseño de programas concurrentes tiene unas características que normalmente no se tienen en cuenta cuando no lo son.

Vimos cómo crear hilos en Java implementando Runnable, como ejemplo, y vimos cómo el resultado varía de cambiar el código a concurrente.

¡Nos vemos en clase!

Etiquetas: , ,

Programación concurrente VI. Creación de hilos en Java II.

En este post veremos la segunda opción: Implementando la interfaz Runnable.

Para clarificar mejor, utilizamos el mismo ejemplo del post anterior.

Para ello, utilizamos la palabra clave implements en la definición de la clase y definimos el método run(), que es donde vamos a especificar el código que ejecutará el hilo.

 

class prueba_implementando implements Runnable

{

public void run()

{

for (int i=0; i<10; i++)

{

System.out.print("implementando");

}

}

}

Ya tenemos la clase. Pero para poder utilizar este hilo, lo primero es crear un objeto de esta clase (en nuestro ejemplo lo hacemos desde main()):

 

public static void main(String[] args)

{

prueba_implementando obj1 = new prueba_implementando();

}

A diferencia de cuando heredamos Thread, en este caso los objetos de esta clase no serán hilos por sí mismos. Para que lo sean, deberemos crear un objeto a partir de la clase Thread, pasándole por parámetro el objeto creado a partir de nuestra clase que implementa Runnable. Luego quedará ejecutar el procedimiento start() de nuestro objeto hilo.

public static void main(String[] args)

{

prueba_implementando obj1 = new prueba_implementando();

Thread mi_hilo = new Thread(obj1);

mi_hilo.start();

}

¿Porqué dos maneras de crear hilos en java?. Java no permite herencia múltiple, pero sí permite que una clase herede una clase e implemente interfaces al mismo tiempo. Con la segunda opción podemos hacer ambas cosas, mientras que con la primera nos limita la herencia de otra clase en caso de que se necesitase.

Etiquetas: ,

Programación concurrente V. Creación de hilos en Java I.

Para crear hilos en Java, tenemos dos maneras:

  • Heredando de la clase Thread.

  • Implementando la interfaz Runnable.

En este post veremos la primera opción dejando la segunda para un post siguiente.

Leer el resto de esta entrada »

Etiquetas: ,

Programación concurrente IV. Procesos.

A continuación se muestra un ejemplo de declaración de procesos en el lenguaje Pascal-FC. Este lenguaje de programación servirá como base de los ejemplos de próximos post sobre esta temática. Dada su carácter educativo, es útil para el aprendizaje de la programación concurrente. 

Leer el resto de esta entrada »

Etiquetas: ,

Programación concurrente III. Programas concurrentes correctos.

Para que un programa concurrente sea correcto, no basta con que cumpla las especificaciones funcionales (requerimientos funcionales) de su especificación. Además deberá cumplir unas propiedades debido a la concurrencia:

Leer el resto de esta entrada »

Etiquetas: ,

Programación concurrente II. Las condiciones de Bernstein

Siguiendo con la introducción a la programación concurrente, en este post veremos las condiciones que deben cumplir dos procesos para poder ser concurrentes.
Leer el resto de esta entrada »

Etiquetas: ,

Programación concurrente I. Conceptos fundamentales y definiciones.

Aunque en su principio la programación concurrente era feudo de los sistemas operativos (además de programarse a bajo nivel en ensamblador), la llegada del concepto de thread (hilo), de los lenguajes orientados a objetos que permiten la concurrencia e Internet han propiciado que este tipo de programación tenga más importancia en estos momentos.

Periódicamente se publicarán en este blog posts sobre esta temática que espero que ayuden a entender un poco más este tipo de programación tan interesante.

Leer el resto de esta entrada »

Etiquetas: