Latest web development tutorials
×

HTML курс

HTML курс HTML Краткое введение HTML редактор HTML Фонд HTML элемент HTML свойство HTML заголовок HTML пункт HTML Форматирование текста HTML ссылка HTML руководитель HTML CSS HTML изображение HTML таблица HTML список HTML блок HTML раскладка HTML форма HTML рамка HTML цвет HTML название цвета HTML значения цвета HTML скрипт HTML символьные объекты HTML URL HTML Быстрый список HTML резюме XHTML Введение

HTML5

HTML5 курс HTML5 Поддержка браузеров HTML5 Новый элемент HTML5 Canvas HTML5 Инлайн SVG HTML5 MathML HTML5 Перетаскивание HTML5 Географическое положение HTML5 видео(Video) HTML5 аудиочастота(Audio) HTML5 Input тип HTML5 элементы формы HTML5 Свойства формы HTML5 Смысловые элементы HTML5 Web память HTML5 Web SQL HTML5 кэш приложений HTML5 Web Workers HTML5 SSE HTML5 WebSocket HTML5 викторина HTML(5)Спецификация Код

HTML средства массовой информации

HTML средства массовой информации(Media) HTML Виджет HTML аудиочастота(Audio) HTML видеоплеер(Videos) HTML примеров

HTML справочное руководство

HTML список Теги(в алфавитном порядке) HTML список Теги(функция сортировки) HTML свойство HTML событие HTML холст HTML аудиочастота/видео HTML эффективный DOCTYPES HTML название цвета HTML Выбор цвета HTML Набор символов HTML ASCII HTML ISO-8859-1 HTML символ HTML URL кодирование HTML таблица условных сигналов HTTP новости HTTP способ Сочетания клавиш

Java Примеры - производитель / потребитель проблема

Java Примеры Java Примеры

проблемы производителей и потребителей нанизаны модели классической проблемой: производители и потребители в тот же период доля тот же объем памяти, как показано ниже, производителям пространства для хранения данных, а также потребителям доступ к данным, если не координация могут появиться следующие условия:

Память заполнена, и производители занимают его, ожидая производителя, чтобы освободить место для потребителя, чтобы удалить продукт, производителя продукции, ожидающих потребительских расходов, тем самым добавив к пространству продукта. В ожидании друг друга, так что тупиковая ситуация происходит.

Java Примеры - производитель / потребитель проблема

Следующий пример демонстрирует, как решить проблему производителя / потребителя по теме:

/*
 author by w3cschool.cc
 ProducerConsumerTest.java
 */

public class ProducerConsumerTest {
   public static void main(String[] args) {
      CubbyHole c = new CubbyHole();
      Producer p1 = new Producer(c, 1);
      Consumer c1 = new Consumer(c, 1);
      p1.start(); 
      c1.start();
   }
}
class CubbyHole {
   private int contents;
   private boolean available = false;
   public synchronized int get() {
      while (available == false) {
         try {
            wait();
         }
         catch (InterruptedException e) {
         }
      }
      available = false;
      notifyAll();
      return contents;
   }
   public synchronized void put(int value) {
      while (available == true) {
         try {
            wait();
         }
         catch (InterruptedException e) { 
         } 
      }
      contents = value;
      available = true;
      notifyAll();
   }
}

class Consumer extends Thread {
   private CubbyHole cubbyhole;
   private int number;
   public Consumer(CubbyHole c, int number) {
      cubbyhole = c;
      this.number = number;
   }
   public void run() {
      int value = 0;
         for (int i = 0; i < 10; i++) {
            value = cubbyhole.get();
            System.out.println("消费者 #" + this.number+ " got: " + value);
         }
    }
}

class Producer extends Thread {
   private CubbyHole cubbyhole;
   private int number;

   public Producer(CubbyHole c, int number) {
      cubbyhole = c;
      this.number = number;
   }

   public void run() {
      for (int i = 0; i < 10; i++) {
         cubbyhole.put(i);
         System.out.println("生产者 #" + this.number + " put: " + i);
         try {
            sleep((int)(Math.random() * 100));
         } catch (InterruptedException e) { }
      }
   }
}

Приведенный выше код выполняется выход:

消费者 #1 got: 0
生产者 #1 put: 0
生产者 #1 put: 1
消费者 #1 got: 1
生产者 #1 put: 2
消费者 #1 got: 2
生产者 #1 put: 3
消费者 #1 got: 3
生产者 #1 put: 4
消费者 #1 got: 4
生产者 #1 put: 5
消费者 #1 got: 5
生产者 #1 put: 6
消费者 #1 got: 6
生产者 #1 put: 7
消费者 #1 got: 7
生产者 #1 put: 8
消费者 #1 got: 8
生产者 #1 put: 9
消费者 #1 got: 9

Java Примеры Java Примеры