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

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

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

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

Ответ
 
Опции темы
Старый 10.02.2018, 14: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 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


14:12.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.