码迷,mamicode.com
首页 > 编程语言 > 详细

终于理清线程池

时间:2015-09-14 19:38:25      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:线程池的重要性


笔记,主要是理解多线程的线程池,关注标红的部分

不要在意process函数是干什么的,只理解为一个函数即可,最后一句是释放该线程

本例就是,最多20个线程,不断地利用和释放


import threading


# 程序执行入口
def execute(self):
    result = self.fetch_hosts()
    if not result:
        return None
    
# 
def process(self, hostname, thread_obj):

    try:
        server_response = PluginApi.get_server_info(hostname, self.remote_user, self.remote_port)
        if not server_response.status:
            raise Exception(server_response.message)
        params = urllib.urlencode({"data": json.dumps(server_response.data)})
        # 将获取的主机信息发送到API处理,但API返回数据未做任何处理
        self.url_request(self.push_resource, ‘POST‘, params)
    except Exception, e:
        log.write_error_log(‘[%s][process],%s‘ % (hostname, str(e)))
    finally:



如果不这样做,那么并发10000个甚至更多,

就会来多少请求,创建多少个线程,服务器可能瞬间崩溃。

比如:

def run(n):
    print ‘run‘

for i in range(1000):
    t = threading.Thread(target=run, args=(i,))
    t.start()

这个例子就会瞬间起1000个线程



终于理清线程池

标签:线程池的重要性

原文地址:http://yunweipy.blog.51cto.com/10683003/1694655

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!