|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- import queue, threading, time, requests
- class Fetcher():
- def get(self, url):
- try:
- resp = requests.get(url)
- except requests.HTTPError as e:
- print(e)
- class GetHtmlThread(threading.Thread):
- def __init__(self, req_html_queue, fetcher):
- threading.Thread.__init__(self)
- self.req_html_queue = req_html_queue
- self.fetcher = fetcher
- self.start()
- def run(self):
- while True:
- try:
- print(threading.current_thread().getName())
- url = self.req_html_queue.get(timeout = 30)
- resp = self.fetcher.get(url)
- except queue.Empty:
- break
- class ThreadManager(threading.Thread):
- def __init__(self, thread_num = 50, work_num = 1000):
- self.req_html_queue = queue.Queue()
- self.fetcher = Fetcher()
- self.thread_num = thread_num
- self.work_num = work_num
- self.url = 'http://bbs.fishc.com/thread-83875-1-1.html'
- def start(self):
- for i in range(self.work_num):
- self.req_html_queue.put(self.url)
- thread_pool = [GetHtmlThread( self.req_html_queue, self.fetcher) for j in range(self.thread_num)]
- for t in thread_pool:
- t.join()
- if __name__ == '__main__':
- fresh = ThreadManager()
- fresh.start()
复制代码 |
评分
-
查看全部评分
|