0% encontró este documento útil (0 votos)
249 vistas23 páginas

Ejercicios de Thread en Java

Este documento contiene 13 ejercicios de hilos en Java. Los ejercicios cubren temas como la creación de hilos, el uso de métodos sleep para simular retardo, el ingreso y procesamiento de datos, y la simulación de diferentes escenarios usando hilos. Cada ejercicio presenta el código Java correspondiente y explica brevemente el objetivo o escenario simulado.

Cargado por

Diego Pollas
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 DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
249 vistas23 páginas

Ejercicios de Thread en Java

Este documento contiene 13 ejercicios de hilos en Java. Los ejercicios cubren temas como la creación de hilos, el uso de métodos sleep para simular retardo, el ingreso y procesamiento de datos, y la simulación de diferentes escenarios usando hilos. Cada ejercicio presenta el código Java correspondiente y explica brevemente el objetivo o escenario simulado.

Cargado por

Diego Pollas
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 DOCX, PDF, TXT o lee en línea desde Scribd

Ejercicios de Thread en 

java

1.- Ingresar el nombre de dos usuarios, el día y la hora que ingreso a su centro
de labores, e indicar si llego temprano o tarde, cabe señalar que la hora de
ingreso es a las 8:00.

import java.util.*;
public class Ejercicio1 extends Thread{
Scanner dato = new Scanner(System.in);
String n, d;
double h;
public Ejercicio1(String nombre, String dia, double hora){
n=nombre;
d=dia;
h=hora;
System.out.println("Ingrese el nombre del empleado :");
n = dato.next();
System.out.println("Ingrese el dia :");
d = dato.next();
System.out.println("Ingrese la hora :");
h = dato.nextDouble();

}
public void run(){
if(h>8.00){
System.out.println(n + " llego tarde el día " + d);
}else{
System.out.println(n + " llego temprano el día " + d);
}
}
public static void main(String []args){
Thread usuario1 = new Ejercicio1(" "," ",0);
usuario1.start();
Thread.sleep(3000);
Thread usuario2 = new Ejercicio1(" "," ",0);
usuario2.start();
}
}

Resultado :

2.- Mostrar los números del 1 al 20, con un retardo de tiempo de 1500 mili-
segundos

public class Ejercicio2 extends Thread{


public void run(){
for(int num =1; num<=20;num++){
System.out.print(" " +num+" ");
try {
sleep (1500);
}catch(InterruptedException e){
}
}
}
public static void main(String []args){
Ejercicio2 ejer = new Ejercicio2();
ejer.start();
}
}

3.- Mostrar el nombre de un atleta y simular que corre 30 km.

import java.util.Scanner;

public class Ejercicio3 extends Thread{


Scanner dato = new Scanner(System.in);
String nombre;
public void run(){
System.out.println("Ingrese el nombre del atleta :");
nombre = dato.next();
for(int c=1;c<=30;c++){
System.out.print(c + " km ");
}
try{
sleep(3500);
}catch(InterruptedException e){
}
System.out.println("\n Llego a la meta " + nombre );
}
public static void main(String []args){
Ejercicio3 eje =new Ejercicio3();
eje.start();
}
}

4.- Ingresar los nombres de tres mascotas e simular una carrera de 30 metros e
indicar , quien llego a la meta.
public class Ejercicio4 extends Thread {
String nombre;
public Ejercicio4 (int prioridad,String nombre){
this.nombre=nombre;
setPriority(prioridad);
}
public void run(){
for(int c=1;c<=30;c++){
System.out.print(c+"mt ");
yield();
}
System.out.println("\n Llego a la meta " + nombre);
}
static Ejercicio4 liebre;
static Ejercicio4 conejo;
static Ejercicio4 tortuga;
public static void main(String []args) throws InterruptedException
{
conejo = new Ejercicio4(1," con ");
liebre = new Ejercicio4(5," lie ");
tortuga = new Ejercicio4(8," tor ");
conejo.start();
liebre.start();
tortuga.start();
conejo.join();
liebre.join();
tortuga.join();
}
}
5.- Implemente un programa en java que use hilos independientes, en clases
diferentes. Un hilo imprime números pares del 1 al 10 y la suma de dichos
números, y otro hilo que imprime números impares del 1 al 10. Cree dos
instancias (hilos) de cada uno y muestre la salida. Realice el programa
utilizando herencia en otra clase.

Clase pares :
public class pares extends Thread{
public void run(){
int n;
int contador=0;
for (n=1;n<=10;n++){
if (n % 2 == 0) {
System.out.print(" "+n+"\n");
contador=contador+n;
}
}
System.out.print("La suma de los pares es : "+contador + "\n");
System.out.print(" ******************** \n");
}
}
Clase impares :
public class impares extends Thread{
public void run(){
int n, c=0;
int contador=0;
for ( n=1;n<=10;n++){
c= n%2;
if (c != 0) {
contador=contador+n;
System.out.println(" "+n);
}
}
System.out.print("La suma de los impares es : "+contador + "\n");
}

}
Clase principal :
public class principal {
public static void main(String []args){
pares eje1 = new pares();
eje1.start();
impares eje2 = new impares();
eje2.start();
}
}

6.- Mostrar las estaciones del año en un arreglo y si selecciona una estación
indicar los meses que le corresponden, mostrando los meses con una escala de
tiempo.

import java.util.Scanner;
public class Ejercicio6 extends Thread{
Scanner dato =new Scanner(System.in);
String estaciones[] = { "Primavera", "Otoño", "Invierno",
"Verano" };
String estacion;
public void run(){
String n=" ";
for (int i = 0; i < estaciones.length; i++) {
try{
Thread.sleep(1000);
}catch(InterruptedException e){
}
System.out.println(estaciones[i]);
}
System.out.print("*************** \n" );
System.out.println("Ingrese el nombre de la estacion ");
estacion = dato.next();
if(estacion.equals("Primavera")){
try{
Thread.sleep(2000);
System.out.println("Setiembre");
Thread.sleep(3000);
System.out.println("Octubre");
Thread.sleep(4000);
System.out.println("Noviembre");
}catch(Exception e){ }
}else if(estacion.equals("verano")){
try{
Thread.sleep(2000);
System.out.println("Diciembre..........");
Thread.sleep(3000);
System.out.println("Enero..........");
Thread.sleep(4000);
System.out.println("Febrero..........");
}catch(Exception e){}
}else if(estacion.equals("otono")){
try{
Thread.sleep(2000);
System.out.println("Marzo");
Thread.sleep(3000);
System.out.println("Abril");
Thread.sleep(4000);
System.out.println("Mayo");
}catch(Exception e){ }
}else if(estacion.equals("invierno")){
try{
Thread.sleep(2000);
System.out.println("Junio");
Thread.sleep(3000);
System.out.println("Julio");
Thread.sleep(4000);
System.out.println("Agosto");
}catch(Exception e){ }
}
}
public static void main(String args[])
{
Ejercicio6 est = new Ejercicio6 ();
est.start();
}
}
7.- Diseñar un hilo que permita ingresar  los nombres de los usuarios que
inician sesión  e indicar el tiempo de sesión activa .

8.- Elabore un hilo que con 10 nombres de los pitufos comiendo  pan con
queso (3), quien termine los tes panes indique que termino.

public class Ejercicio8 extends Thread{


private String nombre;
public Ejercicio8(String nombre) {
this.nombre = nombre;
}
public void run() {
for (int a = 1; a <= 3; a++) {
System.out.println(nombre + " come un "+ a +"° pan con queso");
}
System.out.printf("%s terminó\n", nombre);
}
public static void main(String[] args) {
String[] nombres = {"Papa pitufo","pitufina","Filósofo","pintor",
"Gruñón", "bromista",
"dormilón", "tímido", "tontín", "bonachón","romantico"};
for (String nomb : nombres) {
Ejercicio8 e = new Ejercicio8(nomb);
Thread t = new Thread(e);
t.start();
}
}
}
9.- En una clase con extensión hilo crea el promedio de un alumno con el
ingreso de 5 notas.

import java.util.*;
public class Ejercicio9 extends Thread{
Scanner dato = new Scanner(System.in);
public void run(){
int n;
int promedio = 0,nota=1;
int contador = 0;
System.out.println("PROMEDIO DE NOTAS");
while(nota < 6)
{
System.out.println("Ingrese nota " + nota + "°");
n = dato.nextInt();
try
{ Thread.sleep(1500);
}
catch (InterruptedException e) {
}
nota++;
contador = contador + n;
promedio = contador / nota;
}
System.out.println("El promedio es : "+ promedio);
}
public static void main(String []args){
Ejercicio9 ejer9 = new Ejercicio9();
ejer9.start();
}
}
10.- Crear un hilo que permita realizar una llamada a las diferentes marcas de
celulares.

public class Ejercicio10 extends Thread{

public Ejercicio10(String cadena){

super(cadena);

public void run(){

int conta=1;
while(conta<=5){

System.out.println(conta + " " + getName());

try{

sleep((long)(Math.random()*2000));

}catch(InterruptedException e){

System.out.println("Ha ocurrido un error");

conta++;

System.out.println("Termino de las llamadas......." );

System.out.println("Se realizaron " + conta + " llamadas" );

public static void main(String[] args) {

Ejercicio10 iphone, nokia, motorola;

iphone = new Ejercicio10("llamando a iphone");

System.out.println(" REGITRO DE LLAMADAS");

nokia = new Ejercicio10("llamando a nokia");


motorola = new Ejercicio10("llamando a motorola");

iphone.start();

nokia.start();

motorola.start();

System.out.println("Inicio de llamadas....................");

11.- Realice una clase con un método que ejecute las operaciones básicas con
opciones ingresado por teclado.

import java.util.*;

public class Ejercicio11 extends Thread{

Scanner dato = new Scanner(System.in);

int a ;

int b;

public Ejercicio11(){

System.out.println("Ingrese el primer numero ");


a = dato.nextInt();

System.out.println("Ingrese el segundo numero ");

b = dato.nextInt();

String operacion="";

public void run(){

System.out.println("Ingrese la operacion ");

operacion = dato.next();

switch(operacion){

case "suma" :

int suma=a+b;

System.out.println("la suma de los numeros "+ a +" "+ " y " +" "+
b + " es "+ suma);

break;

case "resta" :

int resta=a-b;
System.out.println("la resta de los numeros "+ a +" "+ " y " +" "+
b + " es "+ resta);

case "multiplicacion" :

int multiplicacion=a*b;

System.out.println("la multiplicacion de los numeros "+ a +" "+ "


y " +" "+ b + " es "+ multiplicacion);

break;

case "division":

int division=a/b;

System.out.println("la division de los numeros "+ a +" "+ " y " +"
"+ b + " es "+ division);

break;

public static void main (String []args){

Ejercicio11 oper = new Ejercicio11();

oper.start();
}

12.- Diseñe un hilo, que simule los pitufos corriendo y a azrael atrapar uno a
uno a los pitufos.

public class Ejercicio12 extends Thread{

private String nombre;

private String gato;

public Ejercicio12(String nombre ,String gato) {

this.nombre = nombre;

this.gato = gato;

public void run() {

for (int a = 1; a < 2; a++) {

System.out.println(nombre + " corre");

System.out.printf("%s \n", gato +" atrapa a "+ nombre);

public static void main(String[] args) {


String[] nombres = {"Papa pitufo","pitufina","Filósofo","pintor",
"Gruñón", "bromista",

"Tímido", "Tontín", "Bonachón"};

for (String nomb : nombres) {

Ejercicio12 e = new Ejercicio12(nomb,"Azrael");

Thread t = new Thread(e);

t.start();

13.- En clases independientes elabore un hilo que indique la llegada del


maestro, la llegada de los alumnos al aula previo saludo.
Clase Ejercicio13 ;
public class Ejercicio13 extends Thread{

String nombre;

Saludo saludo;

boolean Profesor;

Ejercicio13(Saludo s, String n, boolean P){

nombre = n;

saludo = s;

Profesor = P;

public void run(){

System.out.println(" ( " + nombre + " ingresa ) ");

if(Profesor){

saludo.respondersaludo();

else{

saludo.saludarProfe(nombre);

}
}

public static void main(String[]args){

Saludo hola = new Saludo();

Ejercicio13 Yazmin = new Ejercicio13(hola, "Yazmin",false);

Ejercicio13 Pepito = new Ejercicio13(hola, "Pepito",false);

Ejercicio13 Miliam = new Ejercicio13(hola, "Miliam",false);

Ejercicio13 daniza = new Ejercicio13(hola, "daniza",false);

Ejercicio13 cesar = new Ejercicio13(hola, "cesar",false);

Ejercicio13 Robinsom = new Ejercicio13(hola, "Robinsom",false);

Ejercicio13 carlitos = new Ejercicio13(hola, "carlitos",true);

Yazmin.start();

Pepito.start();

Miliam.start();

daniza.start();

cesar.start();

Robinsom.start();

carlitos.start();
try{

Yazmin.join();

Pepito.join();

Miliam.join();

daniza.join();

cesar.join();

Robinsom.join();

carlitos.join();

catch(InterruptedException e ){

Clase Saludo;
class Saludo {

synchronized void saludarProfe (String alumnos) {

try{

wait();
System.out.println(alumnos + " --> Buenos dias Profesor !");

catch(InterruptedException e){

System.out.println(e);

synchronized void respondersaludo(){

System.out.println("Profesor --> Buenos dias");

notifyAll();

14.- Mediante hilos elabore una clase que ejecute el proceso del ascensor,
donde los usuarios suben y bajen de un piso con escala de tiempo.

15.- Mostrar el recorrido de 3 unidades de transporte(auto,moto y combi),


empleando métodos y clases independientes:

clase Ejemplo:
public class Ejemplo extends Thread{
int distancia;
public Ejemplo(String transporte){
super (transporte);
}
public void run(){
for(int a=1;a<=distancia;a++){
System.out.println(getName() + " recorre " + a + " km");
}
System.out.println(" ");
}
public void recorrido(int metros){
this.distancia = metros;
}
}
clase Transportes:
public class Transportes {
public static void main(String[] args) {
Ejemplo transporte1 = new Ejemplo6("auto");
Ejemplo transporte2 = new Ejemplo6("moto");
Ejemplo transporte3 = new Ejemplo6("combi");
transporte1.recorrido(15);
transporte2.recorrido(12);
transporte3.recorrido(18);
transporte1.start();
transporte2.start();
transporte3.start();
}
}

También podría gustarte