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 [Link].*;
public class Ejercicio1 extends Thread{
Scanner dato = new Scanner([Link]);
String n, d;
double h;
public Ejercicio1(String nombre, String dia, double hora){
n=nombre;
d=dia;
h=hora;
[Link]("Ingrese el nombre del empleado :");
n = [Link]();
[Link]("Ingrese el dia :");
d = [Link]();
[Link]("Ingrese la hora :");
h = [Link]();
}
public void run(){
if(h>8.00){
[Link](n + " llego tarde el día " + d);
}else{
[Link](n + " llego temprano el día " + d);
}
}
public static void main(String []args){
Thread usuario1 = new Ejercicio1(" "," ",0);
[Link]();
[Link](3000);
Thread usuario2 = new Ejercicio1(" "," ",0);
[Link]();
}
}
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++){
[Link](" " +num+" ");
try {
sleep (1500);
}catch(InterruptedException e){
}
}
}
public static void main(String []args){
Ejercicio2 ejer = new Ejercicio2();
[Link]();
}
}
3.- Mostrar el nombre de un atleta y simular que corre 30 km.
import [Link];
public class Ejercicio3 extends Thread{
Scanner dato = new Scanner([Link]);
String nombre;
public void run(){
[Link]("Ingrese el nombre del atleta :");
nombre = [Link]();
for(int c=1;c<=30;c++){
[Link](c + " km ");
}
try{
sleep(3500);
}catch(InterruptedException e){
}
[Link]("\n Llego a la meta " + nombre );
}
public static void main(String []args){
Ejercicio3 eje =new Ejercicio3();
[Link]();
}
}
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){
[Link]=nombre;
setPriority(prioridad);
}
public void run(){
for(int c=1;c<=30;c++){
[Link](c+"mt ");
yield();
}
[Link]("\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 ");
[Link]();
[Link]();
[Link]();
[Link]();
[Link]();
[Link]();
}
}
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) {
[Link](" "+n+"\n");
contador=contador+n;
}
}
[Link]("La suma de los pares es : "+contador + "\n");
[Link](" ******************** \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;
[Link](" "+n);
}
}
[Link]("La suma de los impares es : "+contador + "\n");
}
}
Clase principal :
public class principal {
public static void main(String []args){
pares eje1 = new pares();
[Link]();
impares eje2 = new impares();
[Link]();
}
}
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 [Link];
public class Ejercicio6 extends Thread{
Scanner dato =new Scanner([Link]);
String estaciones[] = { "Primavera", "Otoño", "Invierno",
"Verano" };
String estacion;
public void run(){
String n=" ";
for (int i = 0; i < [Link]; i++) {
try{
[Link](1000);
}catch(InterruptedException e){
}
[Link](estaciones[i]);
}
[Link]("*************** \n" );
[Link]("Ingrese el nombre de la estacion ");
estacion = [Link]();
if([Link]("Primavera")){
try{
[Link](2000);
[Link]("Setiembre");
[Link](3000);
[Link]("Octubre");
[Link](4000);
[Link]("Noviembre");
}catch(Exception e){ }
}else if([Link]("verano")){
try{
[Link](2000);
[Link]("Diciembre..........");
[Link](3000);
[Link]("Enero..........");
[Link](4000);
[Link]("Febrero..........");
}catch(Exception e){}
}else if([Link]("otono")){
try{
[Link](2000);
[Link]("Marzo");
[Link](3000);
[Link]("Abril");
[Link](4000);
[Link]("Mayo");
}catch(Exception e){ }
}else if([Link]("invierno")){
try{
[Link](2000);
[Link]("Junio");
[Link](3000);
[Link]("Julio");
[Link](4000);
[Link]("Agosto");
}catch(Exception e){ }
}
}
public static void main(String args[])
{
Ejercicio6 est = new Ejercicio6 ();
[Link]();
}
}
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) {
[Link] = nombre;
}
public void run() {
for (int a = 1; a <= 3; a++) {
[Link](nombre + " come un "+ a +"° pan con queso");
}
[Link]("%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);
[Link]();
}
}
}
9.- En una clase con extensión hilo crea el promedio de un alumno con el
ingreso de 5 notas.
import [Link].*;
public class Ejercicio9 extends Thread{
Scanner dato = new Scanner([Link]);
public void run(){
int n;
int promedio = 0,nota=1;
int contador = 0;
[Link]("PROMEDIO DE NOTAS");
while(nota < 6)
{
[Link]("Ingrese nota " + nota + "°");
n = [Link]();
try
{ [Link](1500);
}
catch (InterruptedException e) {
}
nota++;
contador = contador + n;
promedio = contador / nota;
}
[Link]("El promedio es : "+ promedio);
}
public static void main(String []args){
Ejercicio9 ejer9 = new Ejercicio9();
[Link]();
}
}
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){
[Link](conta + " " + getName());
try{
sleep((long)([Link]()*2000));
}catch(InterruptedException e){
[Link]("Ha ocurrido un error");
conta++;
[Link]("Termino de las llamadas......." );
[Link]("Se realizaron " + conta + " llamadas" );
public static void main(String[] args) {
Ejercicio10 iphone, nokia, motorola;
iphone = new Ejercicio10("llamando a iphone");
[Link](" REGITRO DE LLAMADAS");
nokia = new Ejercicio10("llamando a nokia");
motorola = new Ejercicio10("llamando a motorola");
[Link]();
[Link]();
[Link]();
[Link]("Inicio de llamadas....................");
11.- Realice una clase con un método que ejecute las operaciones básicas con
opciones ingresado por teclado.
import [Link].*;
public class Ejercicio11 extends Thread{
Scanner dato = new Scanner([Link]);
int a ;
int b;
public Ejercicio11(){
[Link]("Ingrese el primer numero ");
a = [Link]();
[Link]("Ingrese el segundo numero ");
b = [Link]();
String operacion="";
public void run(){
[Link]("Ingrese la operacion ");
operacion = [Link]();
switch(operacion){
case "suma" :
int suma=a+b;
[Link]("la suma de los numeros "+ a +" "+ " y " +" "+
b + " es "+ suma);
break;
case "resta" :
int resta=a-b;
[Link]("la resta de los numeros "+ a +" "+ " y " +" "+
b + " es "+ resta);
case "multiplicacion" :
int multiplicacion=a*b;
[Link]("la multiplicacion de los numeros "+ a +" "+ "
y " +" "+ b + " es "+ multiplicacion);
break;
case "division":
int division=a/b;
[Link]("la division de los numeros "+ a +" "+ " y " +"
"+ b + " es "+ division);
break;
public static void main (String []args){
Ejercicio11 oper = new Ejercicio11();
[Link]();
}
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) {
[Link] = nombre;
[Link] = gato;
public void run() {
for (int a = 1; a < 2; a++) {
[Link](nombre + " corre");
[Link]("%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);
[Link]();
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(){
[Link](" ( " + nombre + " ingresa ) ");
if(Profesor){
[Link]();
else{
[Link](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);
[Link]();
[Link]();
[Link]();
[Link]();
[Link]();
[Link]();
[Link]();
try{
[Link]();
[Link]();
[Link]();
[Link]();
[Link]();
[Link]();
[Link]();
catch(InterruptedException e ){
Clase Saludo;
class Saludo {
synchronized void saludarProfe (String alumnos) {
try{
wait();
[Link](alumnos + " --> Buenos dias Profesor !");
catch(InterruptedException e){
[Link](e);
synchronized void respondersaludo(){
[Link]("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++){
[Link](getName() + " recorre " + a + " km");
}
[Link](" ");
}
public void recorrido(int metros){
[Link] = 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");
[Link](15);
[Link](12);
[Link](18);
[Link]();
[Link]();
[Link]();
}
}