#c
#c
Вопрос:
Можно ли ограничить std::async
использование только определенного набора ядер процессора? Я ничего не вижу в ссылке для этого.
У меня есть другой поток, прикрепленный к ядру, и я хочу std::async
избежать этого ядра.
Если этого не существует, кто-нибудь знает, запланировано ли это для следующей версии?
Комментарии:
1. В C на самом деле нет понятия пула потоков или ядер процессора, поэтому…
2. Обычно ограничение доступа к определенным ядрам замедляет работу приложений. Обычно правильная вещь — это возиться с приоритетами потоков.
3. @MooingDuck Ценю, что вы говорите «обычно», но это конкретный сценарий. У меня есть критический поток, который нельзя прервать, и у меня есть N «коротких» параллельных задач, которые не могут нарушить критический поток. Кажется, std::async может запланировать их в ядре критического потока. Открыт для любых предложений.
4. Стандарт C не распространяется на ядра; его библиотеки находятся на более высоком уровне. Если вам нужен такой контроль, вам нужно перейти в библиотеки более низкого уровня (например, pthreads).
5. Какой метод вы используете, чтобы ограничить критический поток этим одним ядром? Используйте тот же метод, чтобы заблокировать другие потоки от этого (ограничить их другими ядрами).