Уведомления

Группа в Telegram: @pythonsu

#1 Июль 9, 2013 00:18:33

wmnpyafn
Зарегистрирован: 2013-06-09
Сообщения: 26
Репутация: +  1  -
Профиль   Отправить e-mail  

threading

Разбираю пример кода с сайта, помогите.

import threading
from urllib import urlopen

class WorkerThread(threading.Thread):
def __init__(self,url_list,url_list_lock):
super(WorkerThread,self).__init__()
self.url_list=url_list
self.url_list_lock=url_list_lock

def run(self):
while (1):
nexturl = self.grab_next_url()
if nexturl==None:break
self.retrieve_url(nexturl)

def grab_next_url(self):
self.url_list_lock.acquire(1)
if len(self.url_list)<1:
nexturl=None
else:
nexturl = self.url_list[0]
del self.url_list[0]
self.url_list_lock.release()
return nexturl


def retrieve_url(self,nexturl):
text = urlopen(nexturl).read()
print text
print '################### %s #######################' % nexturl

url_list=['http://linux.org.ru','http://kernel.org','http://python.org']
url_list_lock = threading.Lock()
workerthreadlist=[]
for x in range(0,3):
newthread = WorkerThread(url_list,url_list_lock)
workerthreadlist.append(newthread)
newthread.start()
for x in range(0,3):
workerthreadlist[x].join()

Зачем нужен вот этот код:
for x in range(0,3):
  workerthreadlist[x].join()

Зачем вообще используют метод join?

Офлайн

#2 Июль 9, 2013 05:59:35

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Офлайн

#3 Июль 9, 2013 06:50:21

wmnpyafn
Зарегистрирован: 2013-06-09
Сообщения: 26
Репутация: +  1  -
Профиль   Отправить e-mail  

threading

Я же просил доку найти, а помочь разобраться просил вроде как.

Офлайн

#4 Июль 9, 2013 07:10:18

Soteric
От:
Зарегистрирован: 2010-09-19
Сообщения: 352
Репутация: +  20  -
Профиль   Отправить e-mail  

threading

Этот код ждет завершения работы потоков



Офлайн

#5 Июль 9, 2013 10:37:15

wmnpyafn
Зарегистрирован: 2013-06-09
Сообщения: 26
Репутация: +  1  -
Профиль   Отправить e-mail  

threading

Спасибо

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version