0% encontró este documento útil (0 votos)
30 vistas9 páginas

Códigos Resueltos

El documento contiene 8 ejercicios de programación con hilos en Java. Cada ejercicio presenta un escenario diferente relacionado con el uso de hilos, como la creación de hilos, el establecimiento de prioridades de hilos, la espera de hilos hijos y la interrupción de hilos. Los ejercicios muestran diferentes formas de implementar funcionalidades básicas relacionadas con hilos en Java.

Cargado por

Jose
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
30 vistas9 páginas

Códigos Resueltos

El documento contiene 8 ejercicios de programación con hilos en Java. Cada ejercicio presenta un escenario diferente relacionado con el uso de hilos, como la creación de hilos, el establecimiento de prioridades de hilos, la espera de hilos hijos y la interrupción de hilos. Los ejercicios muestran diferentes formas de implementar funcionalidades básicas relacionadas con hilos en Java.

Cargado por

Jose
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 9

Ejercicio 1:

package unidad2;
import java.util.Scanner;
// Clase que ejecutará el código del hilo
class SucesionFibonacci implements Runnable {
// Como se le va a pasar un valor al hijo esta clase necesia un atributo para guardar y
usar dicho valor
private int iteraciones;

// Para guardar el atributo que se le va a pasar se declara un constructor


public SucesionFibonacci (int iteraciones) {
this.iteraciones = iteraciones;
}

// Código principal del hilo


public void run(){
System.out.println(Thread.currentThread().getName());

int fib1 = 0;
int fib2 = 1;
int suma = fib1 + fib2;

System.out.print(fib1);
for(int i=1; i<iteraciones; i++) {
System.out.print(" "+ suma);
suma = fib1 + fib2;
fib1 = fib2;
fib2 = suma;
}
}
}

public class Ejercicio1 {


public static void main(String args[]) {
System.out.println("Introduce cuántos números de la serie de Fibonnaci
quieres ver.");
Scanner sc = new Scanner(System.in);
int iteraciones;
do {
System.out.print("¿Cuántos? ");
iteraciones = sc.nextInt();
if(iteraciones < 1)
System.out.println("¿Pero qué haces? No pueden mostrarse
menos de uno.");
} while (iteraciones < 1);
sc.close();
SucesionFibonacci fibonacci = new SucesionFibonacci(iteraciones);
Thread miFibonacci = new Thread(fibonacci);
miFibonacci.setName("Fibonacci "+ iteraciones +" iteraciones");
miFibonacci.start();
}
}
Ejercicio 2

package unidad2;

import java.util.Scanner;

class HiloEjercicio2 extends Thread {


@Override
public void run() {
System.out.println("Soy el "+ Thread.currentThread().getName() +"
empezando.");
System.out.println(Thread.currentThread().getName() +" acabado.");
}
}

public class Ejercicio2 {


public static void main(String args[]) {
System.out.println("Introduce cuántos hilos se van a crear de 1 a 10.");
Scanner sc = new Scanner(System.in);
int hilos;
do {
System.out.print("¿Cuántos? ");
hilos = sc.nextInt();
if(hilos < 1 || hilos >10)
System.out.println("¿Pero qué haces? Entre 1 y 10.");
} while (hilos < 1 || hilos >10);
sc.close();

for(int i=1; i<=hilos; i++)


{
HiloEjercicio2 hilo = new HiloEjercicio2();
hilo.setName("hilo "+ i);
hilo.start();
}
}
}
Ejercicio 3

package unidad2;

class HiloEjercicio3 extends Thread {


@Override
public void run() {
System.out.println("Soy el hilo creado que está empezando.");
try {
System.out.println("Voy a esperar 3 segundos.");
Thread.sleep(3000);
} catch (InterruptedException e) {
System.out.println("Hilo creado interrumpido.");
return;
}
System.out.println("Soy el hilo creado que va a acabar.");
}
}

public class Ejercicio3 {


public static void main(String args[]) {
HiloEjercicio3 hilo = new HiloEjercicio3();
hilo.start();
}
}
Ejercicio 4
package unidad2;

class Hiloejercicio4 extends Thread {


private long espera;

public Hiloejercicio4 (long espera) {


this.espera = espera;
}

public void run() {


String nombreHilo = Thread.currentThread().getName();
System.out.println("Soy el "+ nombreHilo +" empezando. Y voy a esperar "+
espera/1000 +" segundos.");

try {
Thread.sleep(espera);
} catch (InterruptedException e) {
System.out.println(nombreHilo +" interrumpido");
return;
}
System.out.println(nombreHilo +" acabando.");
}
}

public class Ejercicio4 {


public static void main(String[] args) {
System.out.println("Hilo PRINCIPAL empezando.");

Hiloejercicio4 thread1 = new Hiloejercicio4(3000);


thread1.setName("Hilo 1");

Hiloejercicio4 thread2 = new Hiloejercicio4(5000);


thread2.setName("Hilo 2");

thread1.start();
thread2.start();

System.out.println("Soy el hilo PRINCIPAL y voy a esperarme 4 segundos.");


try {
Thread.sleep(4000);
} catch (InterruptedException e) {
System.out.println("Hilo PRINCIPAL interrumpido");
return;
}
System.out.println("Hilo PRINCIPAL acabando.");
}
}
Ejercicio 5

package unidad2;

class Hiloejercicio5 extends Thread {


private long espera;
public Hiloejercicio5 (long espera) {
this.espera = espera;
}
public void run() {
String nombreHilo = Thread.currentThread().getName();
System.out.println("Soy el "+ nombreHilo +" empezando. Y voy a esperar "+
espera/1000 +" segundos.");

try {
Thread.sleep(espera);
} catch (InterruptedException e) {
System.out.println(nombreHilo +" interrumpido");
return;
}
System.out.println(nombreHilo +" acabando.");
}
}
public class Ejercicio5 {
public static void main(String[] args) {
System.out.println("Hilo PRINCIPAL empezando.");

Hiloejercicio5 thread1 = new Hiloejercicio5(3000);


thread1.setName("Hilo 1");

Hiloejercicio5 thread2 = new Hiloejercicio5(5000);


thread2.setName("Hilo 2");

thread1.start();
thread2.start();

System.out.println("Soy el hilo PRINCIPAL y voy a esperarme a que mis hijos


acaben.");
try {
thread1.join();
thread2.join();
} catch (InterruptedException e) {
System.out.println("Hilo PRINCIPAL interrumpido");
return;
}
System.out.println("Hilo PRINCIPAL acabando.");
}
}
Ejercicio 6

package unidad2;
class HiloEjercicio6 extends Thread {
private long espera;
public HiloEjercicio6 (long espera) {
this.espera = espera;
}
public void run() {
String nombreHilo = Thread.currentThread().getName();
System.out.println("Soy el "+ nombreHilo +" empezando. Y voy a esperar "+
espera/1000 +" segundos.");
try {
Thread.sleep(espera);
} catch (InterruptedException e) {
System.out.println(nombreHilo +" interrumpido");
return;
}
System.out.println(nombreHilo +" acabando.");
}
}
public class Ejercicio6 {
public static void main(String[] args) {
System.out.println("Hilo PRINCIPAL empezando.");

HiloEjercicio6 thread1 = new HiloEjercicio6(5000);


thread1.setName("Hilo 1");

HiloEjercicio6 thread2 = new HiloEjercicio6(7000);


thread2.setName("Hilo 2");

HiloEjercicio6 threadDaemon = new HiloEjercicio6(12000);


threadDaemon.setName("Hilo Daemon");

thread1.start();
thread2.start();
threadDaemon.setDaemon(true);
threadDaemon.start();
System.out.println("Soy el hilo PRINCIPAL y voy a esperarme 4 segundos.");
try {
Thread.sleep(4000);
} catch (InterruptedException e) {
System.out.println("Hilo PRINCIPAL interrumpido");
return;
}
System.out.println("Hilo PRINCIPAL acabando.");
}
}
Ejercicio 7

package unidad2;

class HiloEjercicio7 extends Thread {


public void run() {
System.out.println("Soy el "+ Thread.currentThread().getName() +"
empezando.");
for(int i=0; i<10; i++)
System.out.println("Soy el "+ Thread.currentThread().getName() +" iteración "+ i);
System.out.println("Soy el "+ Thread.currentThread().getName() +"
acabando.");
}
}

public class Ejercicio7 {


public static void main(String[] args) {
HiloEjercicio7 thread1 = new HiloEjercicio7();
thread1.setName("Hilo 1");
thread1.setPriority(1);

HiloEjercicio7 thread2 = new HiloEjercicio7();


thread2.setName("Hilo 2");
thread2.setPriority(Thread.MAX_PRIORITY);

thread1.start();
thread2.start();
}
}
Ejercicio 8

package unidad2;

public class Ejercicio8 extends Thread{


private int hilosHijos;

public Ejercicio8 (int hilosHijos) {


this.hilosHijos = hilosHijos;
}

public void run() {


this.currentThread().setName("Hilo "+ hilosHijos);
String nombreHilo = Thread.currentThread().getName();

String tabulado = "";


for(int i=1; i<hilosHijos; i++)
tabulado += " ";

if(hilosHijos!=10) {
System.out.println(tabulado +"Soy el "+ nombreHilo +" creo un hijo y
espero que acabe.");
hilosHijos++;
Ejercicio8 hilo = new Ejercicio8(hilosHijos);
hilo.start();
try {
hilo.join();
} catch (InterruptedException e) {
System.out.println(e.getMessage());
}
System.out.println(tabulado +"Soy el "+ nombreHilo +" acabando.");
} else {
System.out.println(tabulado +"Soy el "+ nombreHilo +" y me espero 5
segundos.");
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
System.out.println(e.getMessage());
}
}
}

public static void main(String[] args) {


new Ejercicio8(1).start();
}
}

También podría gustarte