Advertisement
Guest User

Untitled

a guest
Feb 21st, 2020
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.09 KB | None | 0 0
  1. package ejercicios;
  2.  
  3. import static es.urjc.etsii.code.concurrency.SimpleConcurrent.*;
  4. import es.urjc.etsii.code.concurrency.SimpleSemaphore;
  5.  
  6. public class Ejercicio15 {
  7.     static int N_Procesos = 4;
  8.     static volatile int contador = N_Procesos;
  9.     static SimpleSemaphore escribir;
  10.    
  11.     public static void p1() {
  12.         escribir.acquire();
  13.         print("A");
  14.         contador--;
  15.         escribir.release();
  16.         if (contador == 0) {
  17.             print("-");
  18.         }
  19.     }
  20.    
  21.     public static void p2() {
  22.         escribir.acquire();
  23.         print("B");
  24.         contador--;
  25.         escribir.release();
  26.         if (contador == 0) {
  27.             print("-");
  28.         }
  29.     }
  30.    
  31.     public static void p3() {
  32.         escribir.acquire();
  33.         print("C");
  34.         contador--;
  35.         escribir.release();
  36.         if (contador == 0) {
  37.             print("-");
  38.         }
  39.     }
  40.    
  41.     public static void p4() {
  42.         escribir.acquire();
  43.         print("D");
  44.         contador--;
  45.         escribir.release();
  46.         if (contador == 0) {
  47.             print("-");
  48.         }
  49.     }
  50.    
  51.     public static void main(String[] args) {
  52.         escribir = new SimpleSemaphore(1);
  53.         createThread("p1");
  54.         createThread("p2");
  55.         createThread("p3");
  56.         createThread("p4");
  57.         startThreadsAndWait();
  58.     }
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement