Código:
import java.lang.InterruptedException;
public class Barberia
{
int contador;
public Barberia(int contador){
this.contador=contador;
}
public synchronized void atenderCliente(){
if(contador==0){
try{
wait();
}
catch (InterruptedException e){
e.printStackTrace();}
contador++;
}
else if(contador>=1){
notify();
}
}
public synchronized void llegarCliente(){
int copia =contador;
if(contador==copia){
try{
wait();
}
catch (InterruptedException e){
e.printStackTrace();}
contador--;
}
else if(contador<copia){
notify();
}
}
}
public class Barberia
{
int contador;
public Barberia(int contador){
this.contador=contador;
}
public synchronized void atenderCliente(){
if(contador==0){
try{
wait();
}
catch (InterruptedException e){
e.printStackTrace();}
contador++;
}
else if(contador>=1){
notify();
}
}
public synchronized void llegarCliente(){
int copia =contador;
if(contador==copia){
try{
wait();
}
catch (InterruptedException e){
e.printStackTrace();}
contador--;
}
else if(contador<copia){
notify();
}
}
}
Código:
import java.lang.Thread;
import java.lang.InterruptedException;
public class Barbero extends Thread{
Barberia barberia;
public Barbero(Barberia barberia){
this.barberia=barberia;
}
public void run(){
while(true){
barberia.atenderCliente();
try{
sleep(5000);
}
catch (InterruptedException e){
e.printStackTrace();
}
System.out.println("atendio a un cliente");
}
}
}
import java.lang.InterruptedException;
public class Barbero extends Thread{
Barberia barberia;
public Barbero(Barberia barberia){
this.barberia=barberia;
}
public void run(){
while(true){
barberia.atenderCliente();
try{
sleep(5000);
}
catch (InterruptedException e){
e.printStackTrace();
}
System.out.println("atendio a un cliente");
}
}
}
Código:
import java.lang.Thread;
import java.lang.InterruptedException;
public class Cliente extends Thread{
Barberia barberia;
public Cliente(Barberia barberia){
this.barberia=barberia;
}
public void run(){
while(true){
barberia.llegarCliente();
System.out.println("llego un cliente");
}
}
}
import java.lang.InterruptedException;
public class Cliente extends Thread{
Barberia barberia;
public Cliente(Barberia barberia){
this.barberia=barberia;
}
public void run(){
while(true){
barberia.llegarCliente();
System.out.println("llego un cliente");
}
}
}
Código:
import java.io.IOException;
public class PruebaBarberia
{
public static void main(String args[])throws IOException {
Barberia barberia;
Barbero barbero;
Cliente cliente;
barberia=new Barberia(20);
cliente=new Cliente(barberia);
cliente.start();
barbero=new Barbero(barberia);
barbero.start();
}
}
public class PruebaBarberia
{
public static void main(String args[])throws IOException {
Barberia barberia;
Barbero barbero;
Cliente cliente;
barberia=new Barberia(20);
cliente=new Cliente(barberia);
cliente.start();
barbero=new Barbero(barberia);
barbero.start();
}
}










Autor



En línea
