Advertisement
Guest User

Untitled

a guest
Jan 21st, 2019
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.71 KB | None | 0 0
  1.  
  2.  
  3. mutex m1;
  4. mutex m2;
  5. int value;
  6.  
  7. void A() {
  8.     while(true) {
  9.         if (!m1.try_lock())
  10.             continue;
  11.        
  12.         if (m2.try_lock()) {
  13.             value += 3;
  14.            
  15.             m2.unlock()
  16.         }
  17.            
  18.         WriteLine(value);          
  19.         m1.unlock()                
  20.     }
  21. }
  22.  
  23. void B() {
  24.     while(true) {
  25.         if(m2.try_lock()) {
  26.             if (value % 100 == 0)
  27.                 WriteLine(value)
  28.             m2.unlock()
  29.         }
  30.         value += 1;
  31.     }
  32. }
  33.  
  34. void C() {
  35.     while(true){
  36.         m1.lock()
  37.         if (value % 100 == 0)
  38.             value += 17;
  39.        
  40.         m2.lock()
  41.         WriteLine(value)   
  42.         m2.unlock()
  43.  
  44.         m1.unlock()
  45.     }
  46. }
  47.  
  48. void D() {
  49.     while(true){
  50.         if(m2.try_lock()) {    
  51.             m1.lock()
  52.             if (value > 1000)
  53.                 value = 0;
  54.            
  55.             WriteLine(value)
  56.             m1.unlock()    
  57.             m2.unlock()
  58.         }
  59.     }
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement