Первое, что нужно упомянуть, это то, что приоритет потока сам по себе не означает «долю ЦП».Кажется, существует много путаницы в том, что на самом деле означает приоритет потока, отчасти потому, что он на самом деле означает разные вещи под разными ОС.Если вы работаете в Linux, это на самом деле означает что-то близкое к относительной доле процессора.Но под Windows это точно не так.Таким образом, в случае, если это поможет, вы, во-первых, захотите взглянуть на некоторую информацию, которую я недавно скомпилировал о приоритетах потоков в Java , которая объясняет, что на самом деле означают приоритеты потоков в разных системах.
Общий ответ на ваш вопрос заключается в том, что если вы хотите, чтобы поток занимал определенную долю ЦП, лучше неявно делать это программно: периодически, для каждого «куска» обработки, измеряйте, сколько времени прошло (или сколькоИспользовался процессор - они строго не говорят одно и то же), затем спите соответствующее количество времени, чтобы соотношение обработки / ожидания составляло примерно% от времени обработки, которое вы планировали.
Однако яЯ не уверен, что это действительно поможет вашей задаче.
Как я понимаю, в основном у вас есть задача вставки, которая является шагом определения скорости.В обычных обстоятельствах маловероятно, что система «намеренно выделяет меньше ресурсов ЦП, чем может или нужно» потоку, выполняющему эту вставку.
Так что, вероятно, потребуется больше времени для просмотра этой задачи вставки и проверки программноВы можете изменить, как функционирует эта задача вставки.Например: вы можете вставить в большие партии?если процесс вставки действительно связан с процессором по какой-то причине (что я с подозрением), вы можете многопоточность?почему ваше приложение действительно заботится о том, чтобы дождаться завершения вставки, и можете ли вы изменить эту зависимость?
Если вставка относится к стандартной системе БД, мне интересно, действительно ли эта вставка ужасно ограничена ЦП?