Advertisement
Guest User

Untitled

a guest
May 3rd, 2015
276
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.27 KB | None | 0 0
  1. private class Launcher extends Thread{
  2.         private int running;
  3.         private ArrayList<Thread> t;
  4.         private Semaphore s;
  5.         private JFrame frame;
  6.         public Launcher(JFrame frame){
  7.             running = 0;
  8.            
  9.             this.frame = frame;
  10.         }      
  11.        
  12.         private void interrupt_workers(){
  13.             for(int i = 0; i<t.size(); i++){
  14.                 if(t.get(i).isAlive()) t.get(i).interrupt();
  15.             }
  16.         }
  17.        
  18.         private boolean first_threads(){
  19.             boolean too_much_threads = false;          
  20.             for(int i = 0; i < model.getRowCount(); i++){
  21.                 if(i > model.getRowCount()){
  22.                     too_much_threads = true;
  23.                     break;
  24.                 }
  25.                 if(isInterrupted()){
  26.                     interrupt_workers();
  27.                     return too_much_threads;
  28.                 }
  29.                 WebWorker w = new WebWorker((String)model.getValueAt(i, 0), i, frame);
  30.                 t.add(w);
  31.                 w.start();             
  32.                 running++;
  33.             }
  34.             return too_much_threads;
  35.            
  36.         }
  37.        
  38.         public void run(){
  39.             s = new Semaphore(0);
  40.             boolean too_much_threads = first_threads();        
  41.             if(!too_much_threads){
  42.                 while(true){
  43.                     if(running == 0) break;
  44.                     if(isInterrupted()){
  45.                         interrupt_workers();
  46.                         return;
  47.                     }
  48.                     s.tryAcquire();
  49.                     WebWorker w = new WebWorker((String)model.getValueAt(t.size(), 0), t.size(), frame);
  50.                     t.add(w);
  51.                     w.start();
  52.                     running++;                                 
  53.                 }
  54.             }          
  55.         }      
  56.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement