.NET приоритет потока объекта Backgroundworker

from pyspark.ml import Pipeline
from pyspark.ml.classification import RandomForestClassifier
from pyspark.ml.evaluation import BinaryClassificationEvaluator
from pyspark.ml.tuning import CrossValidator, ParamGridBuilder


rf = RandomForestClassifier(labelCol="indexedLabel", featuresCol="indexedFeatures", numTrees=10)
pipeline = Pipeline(stages=[rf])
paramGrid = ParamGridBuilder().addGrid(rf.numTrees, [10, 30]).build()

crossval = CrossValidator(estimator=pipeline,
                          estimatorParamMaps=paramGrid,
                          evaluator=BinaryClassificationEvaluator(),
                          numFolds=2) 

cvModel = crossval.fit(training_df)

гиперпараметры и сетка определены в методе addGrid

7
задан Soundar Rajan 7 February 2009 в 20:10
поделиться

4 ответа

Только для добавления к тому, что уже сказали Jon и Marc:

Фоновые потоки не имеют более низкого приоритета. Различие между приоритетными и фоновыми потоками - то, что CLR завершит работу процесса, после того как больше приоритетных потоков не работает. Потоки пула потоков являются фоновыми потоками.

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

14
ответ дан 6 December 2019 в 07:08
поделиться

Да, что-то неправильно с Вашим подходом - Вы - в основном трудное цикличное выполнение, когда очередь пуста. Безотносительно приоритетов потока это - плохая идея.

Нет ничего неправильно с использованием второстепенного рабочего для этого, но ставить в очередь/исключение из очереди должно действительно просто использовать очередь производителя/потребителя, какие блоки, когда Вы пытаетесь исключить из очереди, когда нет ничего готового.

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

7
ответ дан 6 December 2019 в 07:08
поделиться

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

http://devpinoy.org/blogs/jakelite/archive/2008/12/20/threading-patterns-the-worker-thread-pattern.aspx

1
ответ дан 6 December 2019 в 07:08
поделиться

Это не утверждает, что было низким приоритетом - фон означает a: не поток UI и b: это не поддержит процесс. В действительности это, вероятно, касается ThreadPool потоки.

Если Вы хотите определенный приоритетный поток, то используйте свое собственное Thread объект - но я обычно не рекомендовал бы даже это...

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

3
ответ дан 6 December 2019 в 07:08
поделиться
Другие вопросы по тегам:

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