Message
Message
java
Client() {
this.id = i++;
}
@Override
public String toString() {
return Integer.toString(this.id);
}
@Override
public int hashCode() {
return id;
}
}
Flight.java
buffer class'ý
Main.java
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
application.execute(new Reader(flight));
application.execute(new Reader(flight));
application.execute(new Reader(flight));
application.execute(new Reader(flight));
application.execute(new Writer(flight));
application.execute(new Writer(flight));
application.execute(new Writer(flight));
application.execute(new Writer(flight));
application.execute(new Writer(flight));
application.shutdown();
Reader.java
/* = Reader = Consumer */
import java.util.Random;
//constructor tanýmlanýr
public Reader(Flight flight) {
this.flight = flight;
}
Synchronizedflight.java
import java.util.concurrent.locks.*;
private final Client[] seats; //client tipinde bir oturma yeri dizisi
tanýmlanýr
SynchronizedFlight() {
SynchronizedFlight(int seatsCount) {
@Override
readLock.lock();
Client[] s;
try {
s = this.seats;
} finally {
readLock.unlock();
return s;
@Override
writeLock.lock();
try {
seats[seatNo] = null;
} finally {
writeLock.unlock();
//makeReservation() method
@Override
//seats[seatNo] = client
} finally {
writeLock.unlock();
@Override
return this.seats.length;
Writer.java
/* = Writer = Producer */
import java.util.ArrayList;
import java.util.Collections;
import java.util.Random;
//constructor
this.flight = flight;
list.add(i);
Collections.shuffle(list);
@Override
try {
//makeReservation
Thread.sleep(generator.nextInt(3000));
displayState("makeReservation", list.get(count));
this.flight.makeReservation(newClient, list.get(count));
} catch (InterruptedException e) {
e.printStackTrace();
//cancelReservetion
Thread.sleep(generator.nextInt(3000));
displayState("cancelReservation", list.get(i));
this.flight.cancelReservation(list.get(i));
} catch (InterruptedException e) {
e.printStackTrace();