Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ejercicios;
- import static es.urjc.etsii.code.concurrency.SimpleConcurrent.*;
- import es.urjc.etsii.code.concurrency.SimpleSemaphore;
- public class Ejercicio15 {
- static int N_Procesos = 4;
- static volatile int contador = N_Procesos;
- static SimpleSemaphore escribir;
- public static void p1() {
- escribir.acquire();
- print("A");
- contador--;
- escribir.release();
- if (contador == 0) {
- print("-");
- }
- }
- public static void p2() {
- escribir.acquire();
- print("B");
- contador--;
- escribir.release();
- if (contador == 0) {
- print("-");
- }
- }
- public static void p3() {
- escribir.acquire();
- print("C");
- contador--;
- escribir.release();
- if (contador == 0) {
- print("-");
- }
- }
- public static void p4() {
- escribir.acquire();
- print("D");
- contador--;
- escribir.release();
- if (contador == 0) {
- print("-");
- }
- }
- public static void main(String[] args) {
- escribir = new SimpleSemaphore(1);
- createThread("p1");
- createThread("p2");
- createThread("p3");
- createThread("p4");
- startThreadsAndWait();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement