Guest User

Untitled

a guest
Oct 24th, 2017
37
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.72 KB | None | 0 0
  1. public class Sito implements Runnable {
  2.    
  3.     int id;
  4.    
  5.    
  6.     public Sito(int id) {
  7.         this.id = id;
  8.         System.out.println("Witam, jestem watek nr: " + id );
  9.     }
  10.  
  11.     @Override
  12.     public void run() {
  13.        
  14.        
  15.             int i = 1;
  16.             try {
  17.                
  18.                 while(i<Main.maximum)
  19.                 {
  20.                    
  21.                    
  22.                     Main.semaphore.acquire();
  23.                     i = Main.set.nextSetBit(i + 1);
  24.                     Main.semaphore.release();
  25.  
  26.                     for (int j = i*2; j < Main.size; j += i)
  27.                     {
  28.                         if(Main.set.get(i)) {
  29.                             Main.set.clear(j);
  30.                             Main.semaphore.release();
  31.                         }
  32.                         else {
  33.                             Main.semaphore.release();
  34.                             break;
  35.                         }
  36.                     }
  37.                    
  38.                 }
  39.                
  40.             } catch (InterruptedException e) {
  41.                 // TODO Auto-generated catch block
  42.                 e.printStackTrace();
  43.             }
  44.            
  45.                
  46.                
  47.            
  48.        
  49.        
  50.     }
  51.    
  52.     private int getNextToCheck(int next) throws InterruptedException {
  53.         Main.semaphore.acquire();
  54.         int z=  Main.set.nextSetBit(next + 1);
  55.         Main.semaphore.release();
  56.         return z;
  57.        
  58.     }
  59.    
  60.     private boolean clearIfNeeded(int i,int j) throws InterruptedException
  61.     {
  62.         Main.semaphore.acquire();
  63.        
  64.         if(Main.set.get(i)==false)
  65.             {
  66.             Main.semaphore.release();
  67.             return false;
  68.             }
  69.         else {
  70.             Main.set.clear(j);
  71.             Main.semaphore.release();
  72.             return true;
  73.            
  74.         }
  75.        
  76.        
  77.     }
  78.  
  79. }
Add Comment
Please, Sign In to add comment