Advertisement
Guest User

Untitled

a guest
Feb 21st, 2020
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.67 KB | None | 0 0
  1. package ejercicios;
  2.  
  3. import es.urjc.etsii.code.concurrency.SimpleSemaphore;
  4. import static es.urjc.etsii.code.concurrency.SimpleConcurrent.*;
  5.  
  6. public class Ejer2b15 {
  7.     static volatile int currentNumProc = 0;
  8.     static SimpleSemaphore proceed = new SimpleSemaphore(0);
  9.     static SimpleSemaphore increment = new SimpleSemaphore(1);
  10.    
  11.     public static void A() {
  12.         while(true) {
  13.             print("A");
  14.            
  15.             increment.acquire();
  16.             currentNumProc++;
  17.             increment.release();
  18.            
  19.             if(currentNumProc == 3) {
  20.                 print("-");
  21.                 currentNumProc = 0;
  22.                 proceed.release(3);
  23.                 continue;
  24.             }
  25.            
  26.             proceed.acquire();         
  27.         }
  28.     }
  29.    
  30.     public static void B() {
  31.         while(true) {
  32.             print("B");
  33.            
  34.             increment.acquire();
  35.             currentNumProc++;
  36.             increment.release();
  37.            
  38.             if(currentNumProc == 3) {
  39.                 print("-");
  40.                 currentNumProc = 0;
  41.                 proceed.release(3);
  42.                 continue;
  43.             }
  44.            
  45.             proceed.acquire();         
  46.         }
  47.     }
  48.    
  49.     public static void C() {
  50.         while(true) {
  51.             print("C");
  52.            
  53.             increment.acquire();
  54.             currentNumProc++;
  55.             increment.release();
  56.            
  57.             if(currentNumProc == 3) {
  58.                 print("-");
  59.                 currentNumProc = 0;
  60.                 proceed.release(3);
  61.                 continue;
  62.             }
  63.            
  64.             proceed.acquire();     
  65.         }
  66.     }
  67.    
  68.     public static void D() {
  69.         while(true) {
  70.             print("D");
  71.            
  72.             increment.acquire();
  73.             currentNumProc++;
  74.             increment.release();
  75.            
  76.             if(currentNumProc == 3) {
  77.                 print("-");
  78.                 currentNumProc = 0;
  79.                 proceed.release(3);
  80.                 continue;
  81.             }
  82.            
  83.             proceed.acquire();
  84.         }
  85.     }
  86.    
  87.     public static void main(String[] args){
  88.         createThread("A");
  89.         createThread("B");
  90.         createThread("C");
  91.         createThread("D");
  92.         startThreadsAndWait();
  93.     }
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement