LINUX.ORG.RU

История изменений

Исправление eao197, (текущая версия) :

опять таки традиционно у философа есть 2 метода: Eat() и Think(), которые обозначают работу потока с использованием разделяемых ресурсов и без такового соответственно.

Повторю еще раз, специально для тимлидов.

Вопрос был вот о чем: должен ли код философа выглядеть как

while(1)
{
  think();
  eat();
}
или же
while(1)
{
  sleep();
  think();
  eat();
}

Разница тут в том, что think — это процесс захвата разделяемых ресурсов. Т.е. философ сунулся за вилкой, ее не оказалось, он задумался. Посему Eat — это работа с занятыми ресурсами, Think — это борьба за ресурсы. Может ли быть еще что-то, что делает философ, пока не борется за ресурсы и не работает с захваченными ресурсами?

Исходная версия eao197, :

опять таки традиционно у философа есть 2 метода: Eat() и Think(), которые обозначают работу потока с использованием разделяемых ресурсов и без такового соответственно.

Повторю еще раз, специально для тимлидов.

Вопрос был вот о чем: должен ли код философа выглядеть как

while(1)
{
  think();
  eat();
}
или же
while(1)
{
  sleep();
  think();
  eat();
}

Разница тут в том, что think — это процесс захвата разделяемых ресурсов. Т.е. философ сунулся за вилкой, ее не оказалось, он задумался. Посему Eat — это работа с занятыми ресурсами, Think — это борьба за ресурсы. Может ли быть еще что-то, что делает философ, пока не борется за ресурсы и не работает с захваченными ресурсами.