Обратите внимание, что ваша общая задача занимает всего около 1 секунды.Таким образом, с интервалом переключения 0,001 секунды будет только около 1 / 0,001 = тысяча переключений всего .Стоимость каждого коммутатора (которая происходит «на скорости C») более естественно измеряется в микросекундах, чем в миллисекундах, поэтому тысячи из них остаются дешевыми по сравнению с общим временем в 1 секунду.
Чтобы увидеть большеВ качестве эффекта попробуйте установить интервал переключения на 1e-6
.
В реальной жизни реальная стоимость переключения потоков чаще всего связана с связанными затратами: поток получает достаточно времени для заполнения HWзатем кеш команд и данных отключается, и новый поток сначала испытывает потери кеша на разных уровнях.В вашем примере таких затрат нет (код и данные, используемые каждым потоком, относительно крошечные, а содержимое обоих потоков помещается даже в кэш L1 одновременно).