Описание тега dining-philosopher

Проблема обедающих философов - это пример проблемы, часто используемой при разработке параллельных алгоритмов для иллюстрации проблем синхронизации и методов их решения.
1 ответ

Обработка исчерпания пула соединений и предотвращение взаимоблокировки в Hibernate/C3P0

Мои старые приложения следуют цепочке для запроса моей базы данных: Spring Tx -> Hibernate -> C3P0, Теперь мне нужно реализовать новые функции на основе существующей архитектуры. Я обычно вхожу в транзакционный контекст, используя либо @Transa…
0 ответов

Обедать Философов в Яве, чтобы избежать тупика

У меня возникают проблемы с правильной работой кода Diners Philosophers. Может ли кто-нибудь помочь мне сделать эту работу? Это школьное задание, в котором мы должны попытаться реализовать " Обеденную философию" без тупика. И объясните, как мы этого…
1 ответ

pthread_cond_wait странное поведение

Я пытаюсь решить проблему столовых философов с помощью C++. Код скомпилирован с g++ -lpthread, Все решение на философах GitHub. Репозиторий содержит два файла cpp: main.cpp и philopher.cpp. "Main.cpp" создает переменную мьютекса, семафор, 5 условных…
22 фев '13 в 12:32
0 ответов

Программирование обеденной философской программы с помощью MPI C

У меня проблема с моей программой MPI C. Это код: void wantEat(int p, int rank, char *state, char* stateLeft, char* stateRight){ char *s; MPI_Status status ; /* if left or right neighbor is eating */ if(compare(stateLeft, "eat") || compare (stateRig…
14 дек '15 в 14:23
1 ответ

Join() в нескольких потоках и обработка утечек

Я решаю многопоточную проблему в Java и сама проблема решена, но мои результаты не соответствуют ожиданиям. У меня есть основной поток, который вращает новые потоки, каждый из которых выполняет свои задачи. Это выглядит следующим образом (псевдокод)…
2 ответа

Столовые философы - я говорил со всеми, только один слушает

Я внедряю проблему столовых философов, и я сам столкнулся с проблемой, я не знаю, в чем причина, поэтому я здесь. После обеда, когда я говорю им уйти, я хочу заставить их создавать отчеты, потому что это следующий этап их жизни. Когда я так поступаю…
1 ответ

Как я могу написать адаптивный метод для правильного использования моей библиотеки?

У меня есть библиотека и есть одна проблема с логикой в ​​моей программе. Если вы можете мне помочь - я скажу вам: "Спасибо" . действительно большое спасибо. Код: public class Report { /// <summary> /// An empty constructor, just instantiates …
09 сен '18 в 07:11
1 ответ

Как определить, когда потоки зашли в тупик из Main C#

Я читал другие посты об инструментах для обнаружения тупиков и их предотвращения; но мой вопрос конкретно о том, как найти, когда потоки находятся в тупике от Main, чтобы я мог заставить основной поток спать, пока потоки не будут заблокированы и про…
21 май '13 в 03:28
1 ответ

Создание массива целых, видимых для дочерних процессов, используя mmap

Я работаю над проблемой столового философа и не могу использовать потоки, поэтому мне нужно использовать общую память, чтобы сделать массив палочек для еды и философов видимым для всех дочерних процессов. Я пытаюсь использовать mmap, однако, я непра…
1 ответ

Использование condition_variable::notify_all для уведомления нескольких потоков

Я пытался закодировать обедающих философов как способ стать лучше с многопоточным программированием. В моем коде у меня есть condition_variable это останавливает поток, пока все потоки не будут созданы. Тем не менее, кажется, что когда я звоню condi…
15 янв '18 в 21:59
2 ответа

Обеденный Философ Программа C

Я работаю над проблемой классического обеденного философа с 5 философами и 5 палочками для еды. Моя домашняя работа - использовать 1 мьютекс и 5 условий. У меня все получилось, но я не знаю, почему философ 1 никогда не ест, а 4,3,0 ест и 2 ест дважд…
07 май '14 в 22:45
1 ответ

Обедающие философы, использующие бинарные семафоры

Может ли этот псевдокод решить проблему столовой философии с максимальным параллелизмом? Вот mutex является двоичным семафором, инициализированным в 1. Предполагается, что вилки пронумерованы от 0 до (N-1). Всего N философов пронумерованы от 0 до (N…
1 ответ

Столовая Философы с использованием мониторов

В реализации "Обедающих философов" с монитором, почему операция putdown() дважды вызывает операцию test()? procedure take_chopsticks(i) { DOWN(me); pflag[i] := HUNGRY; test[i]; UP(me); DOWN(s[i]) } void test(i) { if ( pflag[i] == HUNGRY && p…
1 ответ

Параллелизм в эрланге и столовой философии

Я берусь за алгоритм столовых философов. Мне нужно породить 5 философов, которые я сделал, используя этот код main() -> philos1 = spawn (?MODULE, philosopher, []), philos2 = spawn (?MODULE, philosopher, []), philos3 = spawn (?MODULE, philosopher,…
03 мар '16 в 20:10
1 ответ

C `signal` имеет слишком мало аргументов

Я работаю над проблемой, где я должен реализовать пример парадигмы столовой философии. Примечание: Да, это домашнее задание, прежде чем кто-либо спросит. Я не прошу решение, хотя. Я смущен, потому что это Philosopher Теоретически должна работать та …
07 дек '16 в 15:05
1 ответ

Утечка памяти в Java? Обеденные философы реализованы с помощью семафоров

Кажется, я создал утечку памяти в Java, что даже не осознавал, что это возможно. Я реализовал одно решение проблемы параллелизма столовых философов на основе рисунка из книги Эндрю Таненбаума " Современные операционные системы". Он отлично работает,…
1 ответ

Java столовые философы мониторы

У меня есть проблема в моем Java-коде, которая должна имитировать проблему столовой pholosophers, которая описана здесь: http://en.wikipedia.org/wiki/Dining_philosophers_problem Я хочу выводить текущее состояние всех философов каждый раз, когда один…
0 ответов

Существующий алгоритм для основного процессора

Итак, у меня есть приложение, которое работает одновременно на нескольких серверах. Все они используют одну и ту же базу данных (Mongo) и могут также общаться через JMS. У меня есть обработка, которую я должен сделать на одной из коллекций БД, котор…
1 ответ

Операция с "%" дает неожиданный результат

Я работаю в Обеденной философской проблеме. Для распределения я использую этот цикл, который я нашел: int philosophersNumber=5; for (int i = 0; i < philosophersNumber; i++) { philosophers[i] = new Philosopher( i, forks[i], forks[(i + 1) % philoso…
23 окт '17 в 22:31
1 ответ

Помещение семафора в разделяемую память C

Я пытаюсь сделать семафор видимым для нескольких процессов после разветвления. Это проблема столового философа, использующего разделяемую память и семафор, чтобы гарантировать, что только один философ собирает палочки для еды за раз (не самый эффект…
26 мар '15 в 03:58