Está en la página 1de 23

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