metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2008-06-25 02:35 pm

Почему у людей в головах такой страшный бред?

отсюда

Q. У меня неправильно работает многопоточное приложение, иногда не снимается блокировка с ресурса.
A1, нормальный :Используйте правильный паттерн блокировки с обработкой исключений
A2, от красноглазых психов: Используйте POSIX, потому что микрософтовские поделки глючны и содержат в себе только маркетинговые ходы.

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

[identity profile] qehgt.livejournal.com 2008-06-25 01:32 pm (UTC)(link)
А в С++ - завершают (как это так, исключение никто не обработал?!). Но даже если и не завершали бы - вот сдохла у нас working thread, которая отвечает за какую-то нужную параллельно работающую подсистему. Всё, программа уже в нерабочем состоянии.

В результате получается, что если нам нужна гарантия работы программы/устройства, то приходится обрабатывать исключения в месте их возникновения (или максимум - не давать им выходить за пределы кода, с который взаимодействуют другие нити), что сводит их преимущества к нулю.

Но я с этого разговор начинал.

[identity profile] metaclass.livejournal.com 2008-06-25 01:35 pm (UTC)(link)
За потоками для подсистем обычно следит еще один поток-watchdog, который запускает их повторно в случае чего. И считает количество падений, при превышении заданного порога - начинает истерику, зовет админа разбираться, уведомляет по почте, итд.

[identity profile] qehgt.livejournal.com 2008-06-25 01:41 pm (UTC)(link)
Это если систему спроектировали так, что это стало возможным. Я вот, к примеру, таких не встречал.