Advertisement
Guest User

Untitled

a guest
Apr 24th, 2015
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.60 KB | None | 0 0
  1. package one;
  2.  
  3. import java.util.Currency;
  4. import java.util.Random;
  5.  
  6. public class SomeClass implements Runnable {
  7.     private String letter;
  8.     int time = 0;
  9.     Random R = new Random();
  10.     private boolean FlagFirst;
  11.     private boolean FlagTwo;
  12.     int on = 1;
  13.    
  14.     SomeClass(String letter){
  15.         this.letter = letter;
  16.         while(time<500) time = R.nextInt(1001);
  17.         FlagFirst = true;
  18.         FlagTwo = true;
  19.     }
  20.    
  21.     public void stopNew(){
  22.         System.out.println("Watek "+letter+" spoczywa");
  23.         FlagFirst = false;
  24.     }
  25.    
  26.     public void resumeNew(){
  27.         System.out.println("Watek "+letter+" zyje");
  28.         FlagFirst = true;
  29.     }
  30.    
  31.     public boolean getFlag(){
  32.         return FlagFirst;
  33.     }
  34.    
  35.     public void end(){
  36.         FlagTwo = false;
  37.     }
  38.  
  39.     @Override
  40.     public void run() {
  41.         int t = 0;
  42.         while(FlagTwo){
  43.             while (FlagFirst){
  44.                
  45.                 try {
  46.                     System.out.println(letter+t++);
  47.                     Thread.sleep(time);
  48.                 } catch (Exception E){
  49.                     System.out.println(E);
  50.                 }
  51.                
  52.             }
  53.         }
  54.  
  55.        
  56.        
  57.     }
  58.  
  59. }
  60.  
  61. package one;
  62.  
  63. import java.awt.event.ActionEvent;
  64. import java.awt.event.ActionListener;
  65. import javax.swing.Timer;
  66.  
  67.  
  68.  
  69.  
  70. public class Main extends Thread  {
  71.    
  72.     static int time = 0;
  73.     static boolean flag = true;
  74.     static Timer clock = new Timer(1000, new ActionListener() {
  75.         @Override
  76.         public void actionPerformed(ActionEvent e) {
  77.             time++;
  78.             System.out.println(time+" : czasss");
  79.             if (time==60){
  80.                 flag = false;
  81.                 clock.stop();
  82.             }
  83.         }
  84.     });
  85.    
  86.     public static void main(String[] args) {
  87.        
  88.         SomeClass a = new SomeClass("a");
  89.         SomeClass b = new SomeClass("b");
  90.         SomeClass c = new SomeClass("c");
  91.         SomeClass d = new SomeClass("d");
  92.        
  93.        
  94.         Thread A = new Thread(a);
  95.         Thread B = new Thread(b);
  96.         Thread C = new Thread(c);
  97.         Thread D = new Thread(d);
  98.        
  99.         char letter = 'a';
  100.        
  101.         SomeClass tab_sc []= new SomeClass[7];
  102.        
  103.         for(int i=0; i<tab_sc.length; i++){
  104.             tab_sc[i] = new SomeClass(String.valueOf(letter++));
  105.         }
  106.        
  107.         Thread tab[] = new Thread[tab_sc.length];
  108.        
  109.         for (int i=0; i<tab.length; i++){
  110.             tab[i] = new Thread(tab_sc[i]);
  111.         }
  112.         clock.start();
  113.        
  114.         for (int n = 0; n<tab.length; n++) tab[n].start();
  115.        
  116.         while(flag){
  117.             try{
  118.                 for(int i=0; i<=tab_sc.length; i++){
  119.                     if(i==0){
  120.                         tab_sc[i].stopNew();
  121.                     } else {
  122.                         if (i<tab_sc.length) tab_sc[i].stopNew();
  123.                         tab_sc[i-1].resumeNew();
  124.                        
  125.                     }
  126.                     if(!flag) break;
  127.                     sleep(3000);
  128.                 }
  129.             } catch(Exception e){
  130.                 System.out.println(e);
  131.             }
  132.         }
  133.        
  134.             for (int i=0; i<tab_sc.length; i++){
  135.                 if (tab_sc[i].getFlag()) tab_sc[i].stopNew();
  136.                 tab_sc[i].end();
  137.             }
  138.  
  139.         D.isAlive();       
  140.  
  141.     }
  142.    
  143.  
  144. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement