The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"В WebKit2 планируют кардинально увеличить надежность и избав..."
Отправлено polymorphm1, 09-Апр-10 23:28 
>ну вообще-то для параллельного программирования используют именно нити (pthread.h) в адресном пространстве
>одного процесса, то есть просто параллельные функции http://www.opengroup.org/onlinepubs/007908799/xsh/pthread.h....
>
>клонирование процессов с помощью fork() используется в основном для запуска иного процесса
>с exec()

как раз таки я и хотел скахать что применение нитей (posix_threads) -- сейчас используют НЕ для увеличения производительности. а только для усложнения логики программы (например сделать некий процесс асинхронным, в случае если его компонент УЖЕ имеет только синхронный интерфейс. или наоборот)..

..раньше -- да -- Нити (pthreads) использовали для увеличения производительности.. (было дело -- не спорю)

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

....также принято использовать и другие всевозможные мьютексные блокировщики.. другими словами в сложных много-нитевых программах -- в текущий момент времени ЗАЧАСТУЮ выполняется только одна нить!

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

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


выход из решения проблемы -- процессы! (ктото выше -- называл слово "потоки". но дабы не путать "потоки" и с "потоками <iostreams>" не буду употреблять это слово)

процессы работают каждый в своём адресном пространстве и не блокируются изза постоянных блокировок нитей других процессов. а обмен данными через каналы (pipe) который ещё и обладает некоторым буфером -- НЕ ВЫЗЫВАЕТ излишние блокировки при обмене состоянием!

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру