Каково преимущество использования pthreads в Linux?

Я нахожу, что лучшая вещь для копирования целых структур каталогов rsync

# rsync -avP /path/to/source/* /path/to/destination/

Это также имеет преимущество, что Вы можете к нему к или от удаленного каталога до ssh.

1
04.10.2012, 14:55
1 ответ

Оценка по вопросу, Вы излагаете Вас, вероятно, не видела проблем, где Потоки обеспечивают преимущество перед стандартными процессами.

Существуют проблемы как Высокочастотный трейдинг, например, где система становится чувствительной к количеству контекстных переключений в системе, а также переключающийся от пользователя к привилегированному режиму и назад. В этой способности к случаю работать в единственном пространстве памяти и иметь легкие контекстные переключения или никакие контекстные переключения вообще дают увеличения производительности достаточно для волнения об этом. Кроме того, если у Вас есть несколько процессов, обрабатывающих поток данных, прибывающих в Вас, не хотят реализовывать диспетчера, копирующего данные в доступный процесс, так как необходимо будет создать очереди в общей памяти или использовать основанный на сети IPC для копирования данных от и до различных пространств памяти процессов, тогда как с потоками Вы читаете и анализируете данные однажды и сохраняете их внутренне, где любой поток может получить доступ к тому конкретному событию, по мере необходимости делающему выполнение это намного быстрее.

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

Учитывая их и намного больше проблем, где единственное пространство процесса становятся выгодными, Вы видите необходимость потоков. Теперь насколько Pthreads заинтересованы. Вы не должны использовать их, но они обеспечивают стандартизацию и следовательно мобильность исходного кода через платформы.

Править

Исходный вопрос, кажется, упоминает LinuxThreads, который реализовывал Потоки полностью на Уровне пользователя, и на Уровне ядра должен был быть обработан как процессы, потому что это было единственное ядро schedulable доступные объекты. С 2,6 ядер это больше не имеет место. NPTL реализует потоки на уровне ядра как schedulable объекты.

Можно также посмотреть на подобный вопрос на StackOverflow

4
27.01.2020, 23:21
  • 1
    я сожалею, но Вы упустили мою суть полностью. Вы говорите об универсальных потоках и нормальном материале о том, как контекстное переключение является дорогим к ядру между процессами по сравнению с потоками, о которых любой достойный текст операционных систем будет говорить подробно. Мой вопрос состоит в том, обеспечивают ли В потоках LINUX (которые реализованы как процессы в пространстве ядра, я верю) какое-либо преимущество перед тем, чтобы быть используемым в качестве независимых процессов в пространстве пользователя. –  Arpith 04.10.2012, 21:59
  • 2
    @Arpith Ответ исправил. O'Neal –  Karlson 04.10.2012, 23:17

Теги

Похожие вопросы