『Python』 ThreadPool 线程池模板

 

 

Python 的 简单多线程实现 用 dummy 模块 一句话就可以搞定,但需要对线程,队列做进一步的操作,最好自己写个线程池类来实现。

Code:

 

 

# coding:utf-8
# version: 0.1
import re,time
from requests import get
from Queue import Queue, Empty
from threading import Thread

# 全局变量
COUNT = 0

# 爬虫类
class Spider(Thread):
	"""docstring for Spider"""
	def __init__(self,queue):
		Thread.__init__(self)
		self.queue = queue
		self.start() # 执行 run()

	def run(self):
		"每次读取 queue 的一条"
		global COUNT
		while(1):
			try:
				sth = self.queue.get(block=false)
			except Empty:
				break
			except Exception,e:
				print '[- Excpt :]',str(e)

		print COUNT
		COUNT += 1


# 线程池类
class ThreadPool(object):
	def __init__(self):
		self.queue = Queue() # 需要执行的队列
		self.threads = [] # 多线程列秒
		pass

	def add_task(self):
		pass

	def init_threads(self):
		pass

	def wait(self):
		for t in self.threads:
			if t.isAlive():
				t.join()



if __name__ == '__main__':
	start = time.time()

	tp = ThreadPool(thread_num)
	tp.wait()

	end = time.time()

	print '[ - info ] cost time :{}'.format(end - start)
	
	

  

转载于:https://www.cnblogs.com/anka9080/p/threadpool_templete.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值