Потоки Perl имеют то же преимущество, что и потоки ядра? - PullRequest
2 голосов
/ 20 марта 2010

Потоки ядра выполняют переключение контекста на уровне ядра, а не на уровне процесса.

Я планирую настроить http-сервер в perl. Я хочу знать, имеют ли потоки perl то же преимущество, что и потоки ядра, с точки зрения переключения контекста.

Ответы [ 2 ]

3 голосов
/ 20 марта 2010

Я разумно убежден, что если вы пытаетесь написать высокопроизводительный сервер, Perl НЕ подходит для этого - потоки или нет потоков (кстати, потоки Perl отстой, но это не имеет значения).

Переключение контекста НЕ является причиной того, что работа в режиме ядра «более эффективна», а потому, что у нее нет накладных расходов на системные вызовы. Сказав это, выгода от этих оптимизаций низкого уровня очень и очень важна. Если ваше приложение настолько критично для производительности, что оно нуждается в этих оптимизациях, вы, возможно, просто добавите больше машин на него дешевле (это, конечно, решение руководства). Написание кода ядра подвержено ошибкам (т. Е. Ошибки приводят к сбою или поломке ядра) и его сложно поддерживать, поскольку его необходимо обновлять для каждой новой версии ядра.

1 голос
/ 20 марта 2010

/ usr / bin / perl - это пользовательское приложение, поэтому оно не использует потоки ядра, поэтому оно будет на уровне процесса, а не на уровне ядра. Потоки ядра используются только в коде ядра - все остальное в пользовательском пространстве. Поэтому, если вы не пишете модуль ядра или не пишете C в дереве исходного кода ядра, вы находитесь в пользовательской стране.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...