Java - Ayuda con hilos

 
Vista:
sin imagen de perfil

Ayuda con hilos

Publicado por Rosalinda (2 intervenciones) el 01/02/2015 23:29:00
Hola tengo una duda como se emplean los hilos en un programa.
Tengo un programa que tiene que ser por 4 hilos (suma, pares, impares y primos)
Me pueden explicar como se hace y como se utilizan los hilos porfavor les agradeceria bastante
Este es el programa

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
package Tarea1;
import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;
import static java.lang.Math.*;
public class Tarea1
{
	public static boolean Primo(int numero)
	{
		  int contador = 2;
		  boolean primo=true;
		  while ((primo) && (contador!=numero))
		  {
		    if (numero % contador == 0)
		    primo = false;
		    contador++;
		  }
		  return primo;
	}
	public static void main(String[] args)
	{
		int N, Y, X;
		Scanner lector = new Scanner(System.in);
		String StringN, StringY, StringX;
		System.out.println("Cuantos números desea:");
		StringX = lector.nextLine();
		X =Integer.parseInt(StringX);
		System.out.println("Desde:");
		StringN = lector.nextLine();
		N =Integer.parseInt(StringN);
		System.out.println("Hasta:");
		StringY = lector.nextLine();
		Y =Integer.parseInt(StringN);
		 int v[ ]=new int[X];
		 ArrayList pares = new ArrayList();
		 ArrayList impares = new ArrayList();
		 ArrayList primos = new ArrayList();
		 for(int i=0;i<X;i++)
		 {
			 v[i]=N + (int)(Math.random()*(Y+N+1));
			 System.out.println(v[i]);
		 }
		 int suma=0;
		 for(int p=0;p<X;p++)
		 suma=suma+v[p];
		 for(int i=0;i<X;i++)
		 {
			 if(v[i]%2==0)
			 {
				 pares.add(v[i]);
			 }
		 }
		 for(int i=0;i<X;i++)
		 {
			 if(v[i]%2!=0)
			 {
				 impares.add(v[i]);
			 }
		 }
		 for(int i=0; i<X; i++)
		 {
			 if(Primo(v[i]))
			 {
					primos.add(v[i]);
			 }
		 }
		System.out.println("La suma total es: " + suma);
		System.out.println("Pares");
		System.out.println(pares);
		System.out.println("Impares");
		System.out.println(impares);
		System.out.println("Primos");
		System.out.println(primos);
	}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 349
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Ayuda con hilos

Publicado por Andrés (340 intervenciones) el 15/02/2015 07:40:31
Supongamos que lo que deseas es que por cada operación (suma, pares, impares, primo), esta se ejecute en un Thread.

Hay dos formas de crear hilos en java

1.- Implementando Runnable

/**
*
* @author andres
*/

import java.util.List;
import java.util.ArrayList;

class Suma implements Runnable {


private List<Integer> elementos;

public Suma(List<Integer> elementos) {

this.elementos = elementos;

}


public void run() {

long sumaLocal = 0;


if(null != elementos && 0 < elementos.size()) {


for(Integer i : elementos ) {
sumaLocal += i;
}


System.out.println(sumaLocal);


}


}


}

public class TestRunnable {

public static void main(String[] args) {

List<Integer> elementos = new ArrayList<Integer>();
elementos.add(1);
elementos.add(2);
elementos.add(3);

(new Thread(new Suma(elementos))).start();


}

}


2.- Extendiendo Thread


/**
*
* @author andres
*/
import java.util.List;
import java.util.ArrayList;


class Suma extends Thread {


private List<Integer> elementos;

public Suma(List<Integer> elementos) {

this.elementos = elementos;

}


public void run() {

long sumaLocal = 0;


if(null != elementos && 0 < elementos.size()) {


for(Integer i : elementos ) {
sumaLocal += i;
}


System.out.println(sumaLocal);


}


}


}

public class TestThread {

public static void main(String[] args) {

List<Integer> elementos = new ArrayList<Integer>();
elementos.add(1);
elementos.add(2);
elementos.add(3);


new Suma(elementos).start();


}

}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar