Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private class Launcher extends Thread{
- private int running;
- private ArrayList<Thread> t;
- private Semaphore s;
- private JFrame frame;
- public Launcher(JFrame frame){
- running = 0;
- this.frame = frame;
- }
- private void interrupt_workers(){
- for(int i = 0; i<t.size(); i++){
- if(t.get(i).isAlive()) t.get(i).interrupt();
- }
- }
- private boolean first_threads(){
- boolean too_much_threads = false;
- for(int i = 0; i < model.getRowCount(); i++){
- if(i > model.getRowCount()){
- too_much_threads = true;
- break;
- }
- if(isInterrupted()){
- interrupt_workers();
- return too_much_threads;
- }
- WebWorker w = new WebWorker((String)model.getValueAt(i, 0), i, frame);
- t.add(w);
- w.start();
- running++;
- }
- return too_much_threads;
- }
- public void run(){
- s = new Semaphore(0);
- boolean too_much_threads = first_threads();
- if(!too_much_threads){
- while(true){
- if(running == 0) break;
- if(isInterrupted()){
- interrupt_workers();
- return;
- }
- s.tryAcquire();
- WebWorker w = new WebWorker((String)model.getValueAt(t.size(), 0), t.size(), frame);
- t.add(w);
- w.start();
- running++;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement