Page 66 - 4657
P. 66

рівні  нижче.  Обоє  цих  підпроцесу  запускаються  і  працюють
       протягом  10  секунд.  Кожний  з  них  виконує  цикл,  у  якому
       збільшується  значення  перемінного  лічильника.  Через  десять
       секунд після їхнього запуску основний підпроцес зупиняє їхню
       роботу, привласнюючи умові завершення циклу while значення
       true  і  виводить  значення  лічильників,  що  показують,  скільки
       ітерацій циклу встиг виконати кожний з підпроцесів.
       class Clicker implements Runnable {
       int click = 0;
       private Thread t;
       private boolean running = true;
       public clicker(int p) {
       t = new Thread(this);
       t.setPriority(p);
       }
       public void run() {
       while (running) {
       click++;
       } }
       public void stop() {
       running = false; }
       public void start() {
       t.start();
       } }
       class HiLoPri {
       public static void main(String args[]) {
       Thread.currentThread().setPriority(Thread.MAX_PRIO
       RITY);
       clicker hi = new clicker(Thread.NORM_PRIORITY +
       2);
       clicker lo = new clicker(Thread.NORM_PRIORITY -
       2);
       lo.start();
       hi.start();
       try Thread.sleep(-10000) {
       }
       catch (Exception e) {
       }
       lo.stop();
       64
   61   62   63   64   65   66   67   68   69   70   71