SkylerX
Сообщений: 29
Оценки: 0
Присоединился: 2009-07-21 16:13:04.873333
|
При работе с потоками и создании из них очереди сталкиваюсь с ужасным падением производительности на последних командах из очереди. Так же, пытаясь выводить кое-какую инфу, иногда бывает, что вывод кривой в некоторых местах. Т.е. выводит два числа не на новой строке каждый, а в одной строке оба, бывает повторяет и пропускает числа. Сам скрипт: #!/usr/bin/python
import urllib, sys, threading, Queue, datetime
start = datetime.datetime.today().second+int(datetime.datetime.today().minute)*60
proxylist = open('proxy.txt', 'r')
count = len(proxylist.readlines())
proxylist = open('proxy.txt', 'r')
goodproxy = open('goodproxy.txt', 'w')
countproxy = count
class thread(threading.Thread):
def run(self):
while 1:
global countproxy
proxy = proxypool.get()
if proxy != None:
proxies = {'http': 'http://'+proxy}
try:
urllib.urlopen('http://torrents.ru', proxies=proxies)
goodproxy.write(proxy)
countproxy = countproxy - 1
print countproxy
except:
countproxy = countproxy - 1
print countproxy
proxypool.task_done()
proxypool = Queue.Queue()
threads = 10
for i in range(threads):
t = thread()
t.setDaemon(True)
t.start()
#thread().start()
for line in proxylist.readlines():
proxypool.put(line)
while 1:
pass
|