Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > .NET фреймворки > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 10.02.2018, 13:47   #1
kosplay321
 
Регистрация: 11.01.2018
Сообщений: 4
По умолчанию Задача многопоточной реализации потребитель-покупатель

Реализация задачи «поставщик-потребитель». Требуется реализовать приложение- поставщик и приложение-потребитель или многопоточное приложение с потоком «поставщик» и потоком «потребитель».
Вопрос в том что не могу довести прогу до ума, выдает тупые ошибки "Не известен тип имени".
Цитата:
#include <stdio.h>
using System;
using System.Threading.Tasks;
using System.Threading.Tasks.Dataflow
public class ProducerConsumerApp {

public static void main(String[] args) {

Store store = new Store();
new Producer(store).start();
new Consumer(store).start();
}
}
// создаем объект склада, с которого будут брать товары покупатели
// и куда будут вносить товары производители
{class Store {
int counter = 0; // счетчик товаров
final int N = 5; // максимально допустимое число

// синхронизированный метод для производителей
synchronized int put() {
if(counter<=N) //если товаров меньше
{
counter++; // кладем товар
System.out.println ("склад имеет " + counter + " товар(ов)");
return 1; // в случае удачного выполнения возвращаем 1
}
return 0;// в случае неудачного выполнения возвращаем 0
}
// метод для покупателей
synchronized int get() {
if(counter>0) //если хоть один товар присутствует
{
counter--; //берем товар
System.out.println ("склад имеет " + counter + " товар(ов)");
return 1;// в случае удачного выполнения возвращаем 1
}
return 0;// в случае неудачного выполнения возвращаем 0
}
}
}
// поток производителя
{class Producer extends Thread {
Store store; //объект склада, куда кладем товар
int product=5; // количество товаров, которые надо добавить

Producer(Store store)
{
this.store=store;
}

public void run() {
try
{
while(product>0){ //пока у производителя имеются товары
product=product-store.put(); //кладем один товар на склад
System.out.println ("производителю осталось произвести " + product + " товар(ов)");
sleep(100); // время простоя
}
}
catch(InterruptedException e)
{
System.out.println ("поток производителя прерван");
}
}
}
}
// поток покупателя
{class Consumer extends Thread {
Store store; //объект склада, с которого покупатель будет брать товар
int product=0; //текущее количество товаров со склада

Consumer(Store store)
{
this.store=store;
}

public void run() {
try
{
while(product<5){// пока количество товаров не будет равно 5

product=product+store.get(); //берем по одному товару со склада
System.out.println ("Потребитель купил " + product + " товар(ов)");
sleep(100);
}
}
catch(InterruptedException e)
{
System.out.println ("поток потребителя прерван");
}
}
}
}
kosplay321 вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача Производитель-Потребитель (параллельное программирование в Java) Den7555 Фриланс 1 10.09.2017 15:40
C Linux Задача Производитель-потребитель Snow_storm Фриланс 0 12.05.2017 00:16
Задача "Производитель-Потребитель" на C# talim Помощь студентам 0 18.05.2013 16:11


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840