Поток или Процесс?
От: Hard_Club  
Дата: 20.01.14 12:50
Оценка:
Как определить во время проектирования: делать приложение многопоточным или прогопроцессным?
Re: Поток или Процесс?
От: Sinix  
Дата: 20.01.14 13:26
Оценка: +1
Здравствуйте, Hard_Club, Вы писали:

H_C>Как определить во время проектирования: делать приложение многопоточным или прогопроцессным?

Зависит от задач/инструментария/платформы.

Если есть ответ на вопрос: "зачем мне нужна многопоточность", то определить способ реализации обычно несложно.
Re: Поток или Процесс?
От: Blazkowicz Россия  
Дата: 20.01.14 13:30
Оценка: +1 -1
Здравствуйте, Hard_Club, Вы писали:

H_C>Как определить во время проектирования: делать приложение многопоточным или прогопроцессным?

Вот тут есть точные и внятные определение процесса и потока.
http://stackoverflow.com/questions/200469/what-is-the-difference-between-a-process-and-a-thread
Вооружившись требованиями к проекту и этим знанием, можно принимать решение.
Re[2]: Поток или Процесс?
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 20.01.14 13:53
Оценка: +1
Здравствуйте, Blazkowicz, Вы писали:

B>Вот тут есть точные и внятные определение процесса и потока.

B>http://stackoverflow.com/questions/200469/what-is-the-difference-between-a-process-and-a-thread
B>Вооружившись требованиями к проекту и этим знанием, можно принимать решение.

Ни о чем. Техническое понимание разницы между потоком и процессом не дает даст понимания того, что лучше и в каком случае использовать.

Для ТС: Скорей всего, стоит изучить практики использования процессов и потоков в разных классах приложений на живых примерах, понять чем вызвано то или иное решение. Какого-то конкретного ответа на данный вопрос не существует, т,к. выбор определяется классом решаемой задачи + используемыми инструментами.
Re: Поток или Процесс?
От: visual_wind  
Дата: 20.01.14 14:34
Оценка: +1
Здравствуйте, Hard_Club, Вы писали:

H_C>Как определить во время проектирования: делать приложение многопоточным или прогопроцессным?


Если части приложения практически изолированны друг от друга, и/или при этом необходимо, чтобы при сбое в одной из частей приложение продолжало функционировать — то многопроцессное.

Если части приложения достаточно связаны друг с другом, и/или важна эффективность при переключение контекста — то многопоточное.
Re: Поток или Процесс?
От: C.A.B LinkedIn
Дата: 20.01.14 16:12
Оценка: 6 (1) +4
Здравствуйте, Hard_Club, Вы писали:
H_C>Как определить во время проектирования: делать приложение многопоточным или прогопроцессным?
Процессы и потоки (с прикладной точки зрения) имеют всего два важных, но взаимоисключающих отличия:
1)Безопасность: Высокая у процессов, т.к. обеспечивается на уровне ОС и железа. И низкая у потоков (зависит от среды выполнения и прямоты рук программиста).
2)Взаимодействие: Сложное и медленное у процессов, т.к. безопасность. И простое и быстрое у потоков (для этого они собственно и существуют).
Что важней для вашего приложения?
Между тем,что я думаю,тем,что я хочу сказать,тем,что я,как мне кажется,говорю,и тем,что вы хотите услышать,тем,что как вам кажется,вы слышите,тем,что вы понимаете,стоит десять вариантов возникновения непонимания.Но всё-таки давайте попробуем...(Э.Уэллс)
Re[3]: Поток или Процесс?
От: Blazkowicz Россия  
Дата: 20.01.14 17:10
Оценка: -1
Здравствуйте, kaa.python, Вы писали:


KP>Ни о чем. Техническое понимание разницы между потоком и процессом не дает даст понимания того, что лучше и в каком случае использовать.

Это вообще круто. То есть понимание того что как работает плюс знание требований и здравый смысл это не "тру вэй". "Тру вэй" это подсмотри у других и сделай у себя так же?
Re[4]: Поток или Процесс?
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 20.01.14 18:16
Оценка:
Здравствуйте, Blazkowicz, Вы писали:

B>Здравствуйте, kaa.python, Вы писали:



B>Это вообще круто. То есть понимание того что как работает плюс знание требований и здравый смысл это не "тру вэй". "Тру вэй" это подсмотри у других и сделай у себя так же?


Краткое описание на которое ты дал линку не дает сколь-нибудь глубокого понимания особенностей выбора между потоками и процессами. А смотреть на чужие решения не только можно, но и нужно. Где ты нашел "подсмотри у других и сделай у себя так же"?
Re[5]: Поток или Процесс?
От: Blazkowicz Россия  
Дата: 20.01.14 19:05
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>Где ты нашел "подсмотри у других и сделай у себя так же"?

Здесь:
KP>Скорей всего, стоит изучить практики использования процессов и потоков в разных классах приложений на живых примерах
Re[2]: Поток или Процесс?
От: Sanik Россия http://sergeysthoughts.blogspot.com/
Дата: 21.02.14 14:31
Оценка:
Здравствуйте, C.A.B, Вы писали:

CAB>Здравствуйте, Hard_Club, Вы писали:

H_C>>Как определить во время проектирования: делать приложение многопоточным или прогопроцессным?
CAB>Процессы и потоки (с прикладной точки зрения) имеют всего два важных, но взаимоисключающих отличия:
CAB>1)Безопасность: Высокая у процессов, т.к. обеспечивается на уровне ОС и железа. И низкая у потоков (зависит от среды выполнения и прямоты рук программиста).
CAB>2)Взаимодействие: Сложное и медленное у процессов, т.к. безопасность. И простое и быстрое у потоков (для этого они собственно и существуют).
CAB>Что важней для вашего приложения?

Я бы добавил в уровнение масштабируемость.
Если не нужно на нескольких узлах сети систему разворачивать — многопоточным.
Иначе на процессах.
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
Re[3]: Поток или Процесс?
От: Hard_Club  
Дата: 21.02.14 15:24
Оценка:
Здравствуйте, Sanik, Вы писали:

S>Здравствуйте, C.A.B, Вы писали:


CAB>>Здравствуйте, Hard_Club, Вы писали:

H_C>>>Как определить во время проектирования: делать приложение многопоточным или прогопроцессным?
CAB>>Процессы и потоки (с прикладной точки зрения) имеют всего два важных, но взаимоисключающих отличия:
CAB>>1)Безопасность: Высокая у процессов, т.к. обеспечивается на уровне ОС и железа. И низкая у потоков (зависит от среды выполнения и прямоты рук программиста).
CAB>>2)Взаимодействие: Сложное и медленное у процессов, т.к. безопасность. И простое и быстрое у потоков (для этого они собственно и существуют).
CAB>>Что важней для вашего приложения?

S>Я бы добавил в уровнение масштабируемость.

S>Если не нужно на нескольких узлах сети систему разворачивать — многопоточным.
S>Иначе на процессах.

Но ведь часто делают так: есть несколько ядер на разных машинах и на них гоняют по много потоков.
Re: Поток или Процесс?
От: smeeld  
Дата: 21.02.14 16:17
Оценка:
Здравствуйте, Hard_Club, Вы писали:

H_C>Как определить во время проектирования: делать приложение многопоточным или прогопроцессным?


Многопроцессное приложение предпочтительно на машинах с несколькими процессорами, с необходимостью
распределения нагрузки между ними. В остальном потоки менее дороги в плане переключения контекстов,
поэтому, если нет требования изоляции контекстов параллельных задач приложения и исполнение
подразумевается на одном CPU, то потоки предпочтительней. Но надо помнить, что потоки тоже бывают разными.
Лучшей считается их реализация в солярисе, там есть две их реализации, POSIX thread, Solaris thread.
Re[4]: Поток или Процесс?
От: Sanik Россия http://sergeysthoughts.blogspot.com/
Дата: 21.02.14 18:37
Оценка:
Здравствуйте, Hard_Club, Вы писали:

H_C>Здравствуйте, Sanik, Вы писали:


S>>Здравствуйте, C.A.B, Вы писали:


CAB>>>Здравствуйте, Hard_Club, Вы писали:

H_C>>>>Как определить во время проектирования: делать приложение многопоточным или прогопроцессным?
S>>Я бы добавил в уровнение масштабируемость.
S>>Если не нужно на нескольких узлах сети систему разворачивать — многопоточным.
S>>Иначе на процессах.

H_C>Но ведь часто делают так: есть несколько ядер на разных машинах и на них гоняют по много потоков.


Все так. Подходим к комбинированному варианту решения
Посему во время проектирования выписывают все варианты достижения цели, и под каждым расписать плюсы и минусы.
Ну и принимают решения (иногда неверные).
Как-то так...
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
Re[5]: Поток или Процесс?
От: Hard_Club  
Дата: 21.02.14 19:19
Оценка:
А если задача: загрузить процессоры по полной?
Re[2]: Поток или Процесс?
От: Hard_Club  
Дата: 21.02.14 19:20
Оценка:
Здравствуйте, smeeld, Вы писали:

S>Здравствуйте, Hard_Club, Вы писали:


H_C>>Как определить во время проектирования: делать приложение многопоточным или прогопроцессным?


S>Многопроцессное приложение предпочтительно на машинах с несколькими процессорами, с необходимостью

S>распределения нагрузки между ними. В остальном потоки менее дороги в плане переключения контекстов,
S>поэтому, если нет требования изоляции контекстов параллельных задач приложения и исполнение
S>подразумевается на одном CPU, то потоки предпочтительней. Но надо помнить, что потоки тоже бывают разными.
S>Лучшей считается их реализация в солярисе, там есть две их реализации, POSIX thread, Solaris thread.

Что такое изоляция контекстов?

И чем отличаются POSIX thread и Solaris thread?
Re[3]: Поток или Процесс?
От: smeeld  
Дата: 21.02.14 19:41
Оценка:
Здравствуйте, Hard_Club, Вы писали:


H_C>Что такое изоляция контекстов?


В смысле разные виртуальные адресные пространства, свой у каждого процесса.

H_C>И чем отличаются POSIX thread и Solaris thread?


Всем, начиная от API интерфейса, и заканчивая концепцией.
Re[4]: Поток или Процесс?
От: Hard_Club  
Дата: 21.02.14 22:07
Оценка:
А можно вкратце о концепции?
Re[5]: Поток или Процесс?
От: smeeld  
Дата: 21.02.14 23:03
Оценка:
Здравствуйте, Hard_Club, Вы писали:

H_C>А можно вкратце о концепции?


Схема N:M с реализацией заточенной для одновременного иcполнения потоков одного и того же процесса на разных CPU.
Re: Поток или Процесс?
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 21.02.14 23:27
Оценка:
Здравствуйте, Hard_Club, Вы писали:

H_C>Как определить во время проектирования: делать приложение многопоточным или прогопроцессным?


Начать нужно с того, для чего требуется такой финт. Может хватит и однопоточной модели в которой асинхронная многозадачность реализована
Re[6]: Поток или Процесс?
От: Sanik Россия http://sergeysthoughts.blogspot.com/
Дата: 22.02.14 06:45
Оценка:
Здравствуйте, Hard_Club, Вы писали:

H_C>А если задача: загрузить процессоры по полной?


Стоит задача — значит загружай.
Какая тебе разница чем?
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.