Найти - Пользователи
Полная версия: многопоточность
Начало » Python для новичков » многопоточность
1
x38
всем привет.
уже голову сломал, никак не могу разобраться с многопоточностью.

нужно сделать множество запросов к разным скриптам. дабы ускорить процесс хочу сделать это все в несколько потоков. основной скрипт выглядит так:

j =0;
for req in requests:
#тут вычисляются param1 и param2
if makeRequest (urls[j], req, param1, param2):
print "ok"
j += 1
if j >= len(urls):
j = 0
вот собственно хотелось бы чтобы одновременно выполнялось несколько (например 10) makeRequest, чтобы при завершении одной, начинала выполняться следующая. доки почитал но что то совсем ничего не пойму. ранее с многопоточностью, к своему стыду, дел не имел. помогите люди добрые.
Piton23
используйте модуль threading
создайте свой класс где в конструкторе инициализируете класс threading, там опишите метод run. Т.е. данный метод (ряд операций) будет проходить с каждым объектом. Чтоб запустить нужно вызвать не run а start.
Так же ознакомьтесь с очередями Queue.
И что то не совсем понял

x38
вот собственно хотелось бы чтобы одновременно выполнялось несколько (например 10) makeRequest, чтобы при завершении одной, начинала выполняться следующая
Вы уж определитесь либо одновременно (параллельно) с использованием потоков, либо последовательно без их применения :)

http://www.ibm.com/developerworks/aix/library/au-threadingpython/ # почти один в один но там чтение сайтов
http://keysolutions.ru/articles/osnovy-raboty-s-potokami-v-python
x38
спасибо, получилось
Piton23
Вы уж определитесь либо одновременно (параллельно) с использованием потоков, либо последовательно без их применения
я определился :) имелось в виду что одновременных потоков будет фиксированное число, например 10. и пока 10 потоков выполняется, остальные задачи стоят в очереди, и по завершению какого либо потока, создавался новый. собственно это решил через Queue
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB