Форум сайта python.su
Ребят я пытаюсь разобраться с мультипоточностю ну вот что получилось:
#ну надеюсь понятно что тут модули
import urllib
import threading
from Queue import Queue
import time
def checkit(): #главная функция
line = q.get() #вытаскиеваем из очереди 1 елемент
x = urllib.urlopen("http://www.{0}".format(line)).getcode() #ну тут обробатываем этот элемент
print str(x) #тут тоже
q.task_done() #даем очереди знать что мы закончили работу с 1 элементом и чтоб она приступила к 2ому
q = Queue() #делаем саму очередь
Threads_Number = threading.active_count() #до time.sleep() делаем динамическию очередь
if q.qsize()<Threads_Number*2:
for x in xrange((Threads_Number*2)-q.qsize()):
t = threading.Thread(target=checkit)
t.start()
else:
time.sleep(0.1)
f = open("urls.txt", "r") #открываем файл с содержанием сайтов для чтения
try:
for line in f: #проводим цикл чтоб получить каждую строку по одтельности
q.put(line) #добовляем в очередь
finally:
f.close() #закрываем файл
q.join() #эт я хз там в примере было
checkit() #вызываем главную функцию
python.su
google.ru
google.com
ebay.com
amazon.com
Офлайн
nikoTMчто вы этим кодом хотите сказать?
Threads_Number = threading.active_count() #до time.sleep() делаем динамическию очередь if q.qsize()<Threads_Number*2: for x in xrange((Threads_Number*2)-q.qsize()):
nikoTMа вы сами поняли что должно “ставиться” и куда?
но что то я не вижу чтоб на отдельные потоки ставиться…
nikoTMвы не разобрались с тредами в питоне. читайте документацию.
в чем моя ошибка ?
Офлайн