Задачи, которые вы выполняете в каждом потоке, не выглядят слишком загруженными.Они?&URLArrayMonitor
использует ресурсы базы данных, но для этого не потребуется много ресурсов ЦП, если база данных не находится на том же компьютере, что и скрипт Perl.Я не могу сказать, какие ресурсы, вероятно, будет использовать внешняя программа в &NameChecker
, но, исходя из ваших комментариев, похоже, что она может использовать большую пропускную способность сети;опять не много CPU.Поэтому вас не должно сильно удивлять, если вы сможете запустить этот скрипт на одном ядре.
Если вы хотите проверить, используют ли многопоточные программы несколько ядер, попробуйте дать ему задачу, интенсивно использующую процессор:1005 *
use threads;
use Math::BigInt;
threads->new(sub {print new Math::BigInt($_[0])->bfac()}, 400000) for 1..10;
print `uptime` while sleep 5;