многопроцессор python (ThreadPool), занимающий больше времени, чем последовательный [дубликат]

Расположение тегов Xml в Web.config важно

Сначала

<configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>

Aftet

<connectionStrings>
    <add name="SqlConnectionString"
         connectionString="Data Source=.;Initial Catalog=TestDB; Trusted_Connection=True;"
         providerName="System.Data.SqlClient" />
  </connectionStrings>
26
задан maxymoo 25 January 2017 в 06:04
поделиться

1 ответ

Когда вы используете multiprocessing.dummy , вы используете потоки, а не процессы:

multiprocessing.dummy реплицирует API multiprocessing, но не более чем обертка вокруг модуля threading.

Это означает, что вы ограничены Global Interpreter Lock (GIL) , и только один поток может фактически выполнить Операции, связанные с процессором за раз. Это не позволит вам полностью использовать ваши процессоры. Если вы хотите получить полный параллелизм во всех доступных ядрах, вам нужно будет решить проблему травления, с которой вы сталкиваетесь с multiprocessing.Pool.

Обратите внимание, что multiprocessing.dummy может по-прежнему быть полезным, если работа вам нужно распараллеливать привязку IO или использовать C-расширение, которое выпускает GIL. Однако для чистого кода Python вам понадобится multiprocessing.

50
ответ дан cberkay 20 August 2018 в 11:18
поделиться
Другие вопросы по тегам:

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