[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: xserver-xorg и hal



On 2009.04.30 at 23:27:59 +0900, Anton Anikin wrote:

> В сообщении от 30 апреля 2009 Victor Wagner написал(a):
> 
> > За использование нитей надо судить. Большим жюри. Иногда оправдывать.
> > Потому что ситуации, когда они нужны - бывают. И даже бывают
> > разработчики, которые в этих ситуациях ухитряются с ними грамотно
> > справляться. В остальных случаях - либо расстреливать, либо на
> > принудительные работы по писанию примитивов синхронизации на ассемблере.
> 
> Вы хоть раз сами эти вещи (с использованием нитей) писали ? Или может 
> предложите что другое, при этом переносимое ? Про fork не надо песни петь, 

Опишите задачу для которой нужно предложить архитектуру.

Мое "категоричное" утверждение было о том, что БЫВАЮТ задачи для которых
нити действительно полезны и БЫВАЮТ программисты, которые способны с
ними в этой ситуации справиться. Но в 90% задач существуют более
надежные решения. И более простые, которые можно уложить в голове у
нормального программиста, а не супергения. 

На мой взгляд, сейчас есть ряд весьма популярных технологий (нити -
не единственная, есть еще OOP), написание надежных программ на которых
требует очень высокой квалификации, очень грамотного дизайна, но при
этом эти технологии создают ОБМАНЧИВОЕ впечатление простоты.

Поэтому в качестве rule of thumb использования этих технологий следует
избегать елико возможно. И использовать только тогда, когда были
перепробованы все остальные варианты, и стало очевидно, что они не
годятся. (кстати, сам факт перепробования остальных вариантов очень
способствует правильному дизайну).


> его много где нет. Тот же openMP (который как раз через нити работает), 

OpenMP - узконишевой продукт. Причем в такой нише, где надежность, как
правило, не является категорическим императивом. Потому что типичная
счетная задача девять раз из десяти завершается неудачей вовсе не потому
что наступили на грабли с нитями, а потому что не углядели какой-то
особенности в модели. Поэтому если она будет завершаться неудачно не 9
раз из 10, а 19 из 20, но эти 20 прогонов будут завершены быстрее, чем
те 10 - на это можно пойти.

А вот задачи с которыми пользователь имеет дело каждый день - браузер,
X-сервер, текстовый редактор etc просто НЕ ИМЕЮТ права падать. Даже в
случае заведомо неправильных действий пользователя.



Reply to: