Тесты, выполняемые параллельно — используются оптимальные потоки?

#multithreading #parallel-processing

Вопрос:

если виртуальная машина имеет 2 ядра и 4 логических процессора, то мы должны иметь возможность запускать 4 параллельных оптимальных теста, которые могут использовать 4 доступных потока. Если я упомянул 5 тестов для параллельного выполнения в своем файле сборки, то в идеале 4 выполняются параллельно, и по завершении теста, поток которого был бы свободен, можно выбрать последний тестовый случай для выполнения.

таким образом, оптимальный параллелизм равен 4 только в этом случае. Правильно ли я понимаю.

Комментарии:

1. Все немного сложнее, чем это. У вас есть физические (и логические) ядра, тогда на вашем хосте ОС / виртуальной машины есть планировщик потоков. Приложения, работающие под управлением хоста, создают потоки, а затем хост решает, какой поток запускать на каком физическом ядре, основываясь на нескольких факторах, таких как приоритет потока, спрос, время и т.д. Это еще сложнее, чем то, что я только что написал, но я ограничен в количестве, которое я могу написать в комментариях. Это должно дать вам больше понимания. Какой язык / среда выполнения вы используете?

2. его java и запуск моих тестов в конвейерах Azure — виртуальные машины Azure