Описание тега momotaro
Скажем this.py
содержит следующие:
#!/usr/Бен/Python с
от импорта датавремя датавремя
сейчас = датавремя.сейчас()
напечатать сейчас
Следующие в bash, будет выполнить 10 процессов this.py
одновременно в 20 000 раундов. Следующий раунд начинается после 10 процессы будут завершены. Это позволит вам выполнять this.py
200000 раз, а только через 10 потоков одновременно.
#!/бин/Баш
для меня в {1..20000}; делать
Эхе -е "\nROUND $я\н"
для J в {1..10}; делать
/path/to/this.py &
сделано
ждать
сделали 2>/Дев/нуль
...или использовать один-лайнер:
для меня в {1..20000}; делать Эхо -е "\nROUND $я\П"; для J в {1..10}; делать /path/to/this.py & готово; подождать; сделано 2>/dev/нуль
Очевидно, что можно исключить Эхо
линии. Я просто сделал это для тестирования и показать красивый выход, когда стандартный поток ошибок перенаправляется в /dev/нуль
. Мой вывод будет выглядеть так:
Раунд 1
2015-10-09 23:20:12.432295
2015-10-09 23:20:12.444988`
2015-10-09 23:20:12.471788
2015-10-09 23:20:12.482884
2015-10-09 23:20:12.519446
2015-10-09 23:20:12.558949
2015-10-09 23:20:12.560826
2015-10-09 23:20:12.582571
2015-10-09 23:20:12.600680
2015-10-09 23:20:12.625727
Раунд 2
2015-10-09 23:20:12.761279
2015-10-09 23:20:12.764459
2015-10-09 23:20:12.801361
2015-10-09 23:20:12.831900
2015-10-09 23:20:12.853339
2015-10-09 23:20:12.877965
2015-10-09 23:20:12.921946
2015-10-09 23:20:12.950549
2015-10-09 23:20:12.973625
2015-10-09 23:20:12.986714
Раунд 3
2015-10-09 23:20:13.128276
2015-10-09 23:20:13.169144
2015-10-09 23:20:13.222183
2015-10-09 23:20:13.234889
2015-10-09 23:20:13.242653
2015-10-09 23:20:13.246504
2015-10-09 23:20:13.305419
2015-10-09 23:20:13.306198
2015-10-09 23:20:13.317769
2015-10-09 23:20:13.328895
...и т. д.
Также смотрите в ГНУ параллельно, хотя я думаю, что это может быть ограничено выполняется как множество одновременных заданий, а количество ядер у вас есть. Вы могли бы избежать, что нюанс выполняя несколько параллельных
процессов. Это удивительная замена петель и тому подобное.