Если ваша машина имеет бесконечный ввод-вывод, это означает, что вы можете полностью сосредоточиться на процессорах. Каждая задача использует четверть процессора во время работы. Это означает, что вы можете выполнить четыре задачи для насыщения одного ядра ЦП и сделать N = 16 на четырехъядерном процессоре.
Это, однако, чисто теоретический ответ. В действительности вы найдете несколько проблем, почему N = 16 может быть слишком большим или слишком маленьким. В качестве примера предположим, что все 16 задач идентичны в их планировании (CPU против IO) и запускаются в тот же момент. Это означало бы, что в первом процессоре интенсивная временная шкала исполнения-скорости сводится к одной четверти (16 потоков борются за четыре процессора). Кроме того, можно было бы предположить, что требуется некоторая загрузка процессора для запуска ОС, планировщика, сбора мусора и тому подобного. Это сделало бы N = 16 слишком большим.
С другой стороны, если для каждой задачи не требуется работать с максимальной индивидуальной скоростью, больший N может дать вам лучшую общую производительность, например, если в определенный временной интервал более 3/4 потоков делает I/O, это оставило бы ресурсы CPU неиспользованными в тот самый момент.
Я предполагаю, что это не вопрос опроса, а что-то, что нужно учитывать в реальном мире.