Advertisement
Guest User

Untitled

a guest
Jun 27th, 2019
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.26 KB | None | 0 0
  1. import java.util.Arrays;
  2. import java.util.concurrent.Callable;
  3.  
  4. public class BuscadorMenorSubArray implements Callable<Integer> {
  5. private NurmerosAleatorios nros;
  6. private int comSubArray;
  7. private int finSuArray;
  8.  
  9. public BuscadorMenorSubArray(int c, int f, NurmerosAleatorios n){
  10. comSubArray = c;
  11. finSuArray = f;
  12. nros = n;
  13. }
  14.  
  15. public Integer call(){
  16.  
  17. int subArray[] = nros.getSubArray(comSubArray,finSuArray);
  18. StringBuilder resultado = new StringBuilder();
  19.  
  20. resultado.append("Nombre de Hilo -->> ");
  21. resultado.append(Thread.currentThread().getName());
  22. resultado.append("Sub Arreglo de hilo -->> " );
  23. resultado.append(Arrays.toString(subArray));
  24. resultado.append("\n");
  25.  
  26. Arrays.sort(subArray);//ordenar arreglo
  27. resultado.append("valor menor -->> ");
  28. resultado.append(subArray[0]);
  29. //mostrar el sub arreglo y el nro mayor de este hilo
  30. System.out.println(resultado.toString());
  31. //regresar el mayor de este hilo
  32. return subArray[0];
  33. }
  34. }
  35.  
  36.  
  37. import java.util.ArrayList;
  38. import java.util.Collections;
  39. import java.util.Comparator;
  40. import java.util.List;
  41. import java.util.concurrent.ExecutionException;
  42. import java.util.concurrent.ExecutorService;
  43. import java.util.concurrent.Executors;
  44. import java.util.concurrent.Future;
  45.  
  46. public class DemoHilosSubArrays {
  47.  
  48. public static void main(String[] args) {
  49. //arreglo compartido por hilos
  50. NurmerosAleatorios nros = new NurmerosAleatorios(100);
  51. //este objeto creas los hilos internamente
  52. ExecutorService exec = Executors.newFixedThreadPool(10);
  53. //para guardar los resultados de cada hilo
  54. List<Future<Integer>> resultados = new ArrayList<>();
  55. //agregar los resultados de cada hilo a la ista
  56. resultados.add(exec.submit(new BuscadorMenorSubArray(0, 9, nros)));
  57. resultados.add(exec.submit(new BuscadorMenorSubArray(10, 19, nros)));
  58. resultados.add(exec.submit(new BuscadorMenorSubArray(20, 29, nros)));
  59. resultados.add(exec.submit(new BuscadorMenorSubArray(30, 39, nros)));
  60. resultados.add(exec.submit(new BuscadorMenorSubArray(40, 49, nros)));
  61. resultados.add(exec.submit(new BuscadorMenorSubArray(50, 59, nros)));
  62. resultados.add(exec.submit(new BuscadorMenorSubArray(60, 69, nros)));
  63. resultados.add(exec.submit(new BuscadorMenorSubArray(70, 79, nros)));
  64. resultados.add(exec.submit(new BuscadorMenorSubArray(80, 89, nros)));
  65. resultados.add(exec.submit(new BuscadorMenorSubArray(90, 99, nros)));
  66.  
  67. //mostrar resultados y guardar nro mayor de cada hilo
  68. List<Integer> mayoresDeCadaHilo = new ArrayList<>();
  69. for (Future<Integer> r : resultados) {
  70. try {
  71. mayoresDeCadaHilo.add(r.get());
  72. } catch (ExecutionException i) {
  73.  
  74. } catch (InterruptedException s) {
  75. System.out.println("hilo interrumpido");
  76. }
  77. }
  78.  
  79. // ordenar de mayor a menor ( reversar odenamiento de manera natural)
  80. mayoresDeCadaHilo.sort(Comparator.reverseOrder());
  81. System.out.println("Mayor De Todos los Hilos -->> " + mayoresDeCadaHilo.get(0));
  82. }
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement