example of threads on java

Introduction
Using threads on Java is very simple. There are many tutorial sites (only write in goole +tutorial +thread ). In this article shown an example of a "serial" program that is converted on "parallel" program. In this case the autor divide datas and assign to each thread.
"serial" code
Generated 100 names with 2 arrays.
public class hilo__1 
{
	private String[] nombres= new String[10];
	private String[] apellidos= new String[10];
	
	public hilo__1()
	{
		nombres[0]= "jesus";
		nombres[1]= "antonio";
		nombres[2]= "claudia";
		nombres[3]= "Pilar";
		nombres[4]= "Magdalena";
		nombres[5]= "Roberto";
		nombres[6]= "Elias";
		nombres[7]= "Ana";
		nombres[8]= "Mario";
		nombres[9]= "Maria";

		apellidos[0]= "perez";
		apellidos[1]= "rivera";
		apellidos[2]= "marte";
		apellidos[3]= "lopez";
		apellidos[4]= "Liz";
		apellidos[5]= "Cabrera";
		apellidos[6]= "Macias";
		apellidos[7]= "Rodriguez";
		apellidos[8]= "Mares";
		apellidos[9]= "Limon";
	}

	public void mostrar()
	{
		int i, j;
		for(i=0; i< 10 ; i+=1)
		{
			for(j=0; j<10; j+=1 )
			{
				System.out.println(nombres[i] + " " + apellidos[j] );
			}
		}
	}
	
	public static void main(String[] args) 
	{
		hilo__1 obj= new hilo__1();
		obj.mostrar();
	}

}
"Parallel" code
Using inherintance of thread class
public class hilo__2 extends Thread 
{
	private String[] nombres= new String[10];
	private String[] apellidos= new String[10];
	private int inicio;
	private int termino;
	private String name;
	
	public hilo__2(int i, int j, String n)
	{
		inicio= i;
		termino= j;
		name= n;
		
		nombres[0]= "jesus";
		nombres[1]= "antonio";
		nombres[2]= "claudia";
		nombres[3]= "Pilar";
		nombres[4]= "Magdalena";
		nombres[5]= "Roberto";
		nombres[6]= "Elias";
		nombres[7]= "Ana";
		nombres[8]= "Mario";
		nombres[9]= "Maria";

		apellidos[0]= "perez";
		apellidos[1]= "rivera";
		apellidos[2]= "marte";
		apellidos[3]= "lopez";
		apellidos[4]= "Liz";
		apellidos[5]= "Cabrera";
		apellidos[6]= "Macias";
		apellidos[7]= "Rodriguez";
		apellidos[8]= "Mares";
		apellidos[9]= "Limon";
	}

	public void mostrar()
	{
		int i, j;
		for(i=inicio; i< termino; i+=1)
		{
			for(j=0; j<10; j+=1 )
			{
				System.out.println(name + " -> " + nombres[i] + " " + apellidos[j] );
			}
		}
	}
	
	public void run()
	{
		this.mostrar();
	}
	
	public static void main(String[] args) 
	{
		hilo__2 obj1= new hilo__2(0,5,"1");
		hilo__2 obj2= new hilo__2(5,10,"2");
		obj1.start();
		obj2.start();
	}

}
"Parallel" code
Using inherintance of Runnable interface
public class hilo_run implements Runnable
{

	private String[] nombres= new String[10];
	private String[] apellidos= new String[10];
	private int inicio;
	private int termino;
	private String name;
	

	public hilo_run(int i, int j, String n)
	{
		inicio= i;
		termino= j;
		name= n;
		
		nombres[0]= "jesus";
		nombres[1]= "antonio";
		nombres[2]= "claudia";
		nombres[3]= "Pilar";
		nombres[4]= "Magdalena";
		nombres[5]= "Roberto";
		nombres[6]= "Elias";
		nombres[7]= "Ana";
		nombres[8]= "Mario";
		nombres[9]= "Maria";

		apellidos[0]= "perez";
		apellidos[1]= "rivera";
		apellidos[2]= "marte";
		apellidos[3]= "lopez";
		apellidos[4]= "Liz";
		apellidos[5]= "Cabrera";
		apellidos[6]= "Macias";
		apellidos[7]= "Rodriguez";
		apellidos[8]= "Mares";
		apellidos[9]= "Limon";
	}

	public void mostrar()
	{
		int i, j;
		for(i=inicio; i< termino; i+=1)
		{
			for(j=0; j<10; j+=1 )
			{
				System.out.println(name + " -> " + nombres[i] + " " + apellidos[j] );
			}
		}
	}
	
	public void run()
	{
		this.mostrar();
	}

	public static void main(String[] args) 
	{
		hilo_run obj1= new hilo_run(0,5,"1");
		hilo_run obj2= new hilo_run(5,10,"2");
		Thread hilo1 = new Thread (obj1);
		Thread hilo2 = new Thread (obj2);
		hilo1.start();
		hilo2.start();
		System.out.println("fin");
	}

}
Einzelheiten zur Compiler-Optimierung finden Sie in unserem Optimierungshinweis.
Kategorien: