Хелпикс

Главная

Контакты

Случайная статья





Приклад 5. Запуск повільної кількості потоків



Приклад 5. Запуск повільної кількості потоків

       import javax. swing. *;

      import java. awt. event. *;

      import java. awt. *;

      import com. bruceeckel. swing. *;

 

      public class Counter4 extends JApplet {

private int size = 12;

private JButton

       start = new JButton (“Почати”);

private boolean started = false;

private Ticker[] s;

private boolean isApplet = true;

class Ticker extends Thread {

      private JButton

                     b = new JButton (“Переключити”);

        private JTextField t = new JTextField(10);

         private int count = 0;

         private boolean runFlag = true;

         public Ticker() {

                       b. addActionListener(new ToggleL());

                        JPanel p = new JPanel();

                        p. add(t);

                        p. add(b);

  //

            getContentPane(). add(p);

           }

             class ToggleL implements ActionListener {

                public void actionPerformed(ActionEvent e) {

                 runFlag =! runFlag;

                       }

                    }

                 public void run() {

                           while (true) {

                              if(runFlag) 

                                     t. setText(Integer. toString(count++));      

                              try {

                                     sleep(100);

                               }

                       catch(InterruptedException e) { 

                       System. err. println(“ Перервано”); }

                                  }

                                }

                             }

                        class StartL implements ActionListener {

          public void actionPerformed(ActionEvent e) {

                  if(! started) {

                      started = true;

                  for (int i = 0; i < s. length; i++)

                                s[i]. start();

                            }

                         }

                      }

                  public void init() {

       Container cp = getContentPane();

       cp. setLayout (new FlowLayout());

        //

        if (isApplet) {

            String sz = getParameter(“size”);

               if (sz! = null)  

                size = Integer. parseInt(sz);  

                }

             s = new Ticker[size];

              for (int i = 0; i < s. length; i++)

                                s[i] = new Ticker();

                                 start. addActionLisener(new StartL());

                                     cp. add(start);

                                     }

                            public static void main(Sting[] args) {

                            Counter4 applet = new Counter4();

                            applet. isApplet = false;

                            if(args. length! = 0)

                                 applet. size = Integer. parseInt(args[0]);

                            Console. run(applet, 200, applet. size*50 );

                            }

                           }

 

                      Приклад 6. Потоки –демони

         

                     import java. io. *;

 

                class Daemon extends Thread {

                private static final int SIZE = 10;

                private Thread[] t = new Thread[SIZE];

                public Daemon (true);

                     setDaemon(true);

                     start();

                public void run() {

                    for (int i = 0; i < SIZE;  i++)

                         t[i] = new DaemonSpawn(i);

                        for (int i = 0; i < SIZE; i++)

                                  System. out. println(“t[” + i + “]. isDaemon() = “ +

                             t[i]. isDaemon());

                          while (true)

                              yield();

                             }

                             }

                           class DaemonSpawn extends Thread { 

                               public DaemonSpawn (int i) {

                                 System. out. println(“Потік DaemonSpawn “ + i + “ 

                                 запущений”);

                             start();

                             }

                             public void run() {

                              while (true)

                                  yield();

                                  }

                               }

                             public class Daemons {

                             public static void main(Sting[] args) throws IOExctption {

                             Thread d = new Daemon();

                              System. out. println(“d. isDaemon() =  “ + d. isDaemon());

                              System. out. println(“Натисні будь-яку клавишу “);

                              System. in. read();

                          }

                        }

 

    

            

 

                                

 

               

 

                                                                                          

  



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.