Если у вас есть 50K Runnables, которые занимают до 5 секунд каждый, что составляет 250 000 секунд работы.Если вы хотите запускать это каждые 30 * 60 секунд, вам нужно запустить его как минимум из 139 потоков.Если вы используете 200 потоков, их выполнение может занять 20 минут.Вам может понадобиться больше потоков, если вы хотите, чтобы эти задачи выполнялись, скажем, за 5 минут.
Простое чтение или запись не должны занимать 1-5 секунд.Под одной операцией Socket вы подразумеваете чтение или запись, или вы имеете в виду открыть сокет, отправить некоторые данные и получить ответ?Последнее может включать много накладных расходов.
Несмотря на то, что 50K - это много, у меня было бы столько запланированных заданий, если только вам не нужно запускать задания как можно ближе к 30-минутному интервалу.Если у вас есть независимые задачи 50 КБ, они будут запускаться примерно каждые 30 минут, но выполняются в разное время.В какой-то степени это неизбежно, так как у вас нет ядер 50К, но насколько вы обеспокоены тем, чтобы запускать их как можно ближе?