范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

Python中级精华创建线程池

  目的:
  我们想去创建一个工作者线程池来处理客户端的连接,让每个线程去处理各自的客户,或者完成其他类型的工作。
  方法:
  在concurrent.futures库中包含了ThreadPoolExecutor类可以实现这个目的。下面的例子是一个简单TCP服务器,使用线程池来处理客户端:from socket import AF_INET, SOCK_STREAM, socket from concurrent.futures import ThreadPoolExecutor  def echo_client(sock, client_addr):     print("Got connection from :", client_addr)     while True:         msg = sock.recv(65536)         if not msg:             break         sock.sendall(msg)     print(sock,"has been sent all message ...")     sock.close()  def echo_server(addr):     pool = ThreadPoolExecutor(128)     sock = socket(AF_INET, SOCK_STREAM)     sock.bind(addr)     sock.listen()     while True:         client_sock, client_addr = sock.accept()#服务器接收客户端请求         pool.submit(echo_client, client_sock, client_addr)# 提交给线程池中的处理函数去处理客户端 echo_server(("localhost",21000))# 服务器启动
  同样,可以抛开concurrent.futures中的ThreadPoolExecutor,直接手动创建线程池,如果借助Queue则会变得容易:from socket import SOCK_STREAM, AF_INET,socket from threading import Thread from queue import Queue  def echo_client(q):     sock, client_addr = q.get()     print("got connection:", client_addr)     while True:         msg = sock.recv(65536)         if not msg:             break         sock.sendall(msg)     print("client close")     sock.close()  def echo_server(addr, client_count):     q = Queue()     for x in range(client_count):         t = Thread(target=echo_client,args=(q,),daemon=True)         t.start()     sock = socket(SOCK_STREAM, AF_INET)     sock.bind(addr)     sock.listen(5)     while True:         sock, client_addr = sock.accept()         q.put(sock,client_addr)
  当然又有一句很蹩脚的话,不建议各位这样使用!!应该去使用concurrent.futures中的ThreadPoolExecutor,这么做的优势在于提交任务者可以很好地拿到处理后的结果:from concurrent.futures import ThreadPoolExecutor import urllib.request  def request_url(url):     u = urllib.request.urlopen(url)     data = u.read()     return data  pool = ThreadPoolExecutor(10) a = pool.submit(request_url,r"http://www.xxxxxx.com") b = pool.submit(request_url,r"http://www.xxxxxx.org") res1 = a.result()# 会阻塞等待上述中a取出结果后再解除阻塞 res2 = b.result()
  讨论一个大家都很容易想到的问题,有些人认为,应该在服务器接收到一个客户端连接时就去开辟一个线程来处理这个客户端的事务,本质上来讲这样确实没有问题,但是,万一一个黑客用大量的客户端去访问服务时,有可能会因为开辟太多线程导致服务器挂掉,这是初学者都会想到的思路,但是,一旦涉及多并发程序,切记一定要限制线程个数,为了系统稳定和安全。下面为各位展示初学者的代码:from threading import Thread from socket import socket, AF_INET, SOCK_STREAM  def echo_client(sock, client_addr):     print("GOT a connection:", client_addr)     while True:         msg = sock.recv(65536)         if not msg:             break         sock.sendall(msg)     sock.close()  def echo_server(addr:tuple):     sock = socket(AF_INET, SOCK_STREAM)     sock.bind(addr)     sock.listen(5)     while True:         client_sock, client_addr = sock.accept()         t = Thread(target=echo_client,args=(client_sock, client_addr))         t.daemon = True         t.start()  echo_server(("localhost",21000))
  这里也要注意,线程只适合做IO密集型的任务。综上关于线程池的内容就介绍到这里

天台第一富豪打造国内家居龙头企业,身价195亿浙江天台首富出现打造国内家居龙头企业,身价195亿推荐语天台县,浙江省台州市下辖县,位于浙江省中东部。天台以佛宗道源山水神秀著称,是佛教天台宗发祥地,活佛济公便出生于此,文化底蕴深浙江柳市知名富豪打造中国电器生产龙头企业,身价63亿浙江柳市知名富豪农村穷小子,白手起家逆袭人生,身价63亿推荐语柳市镇,隶属于乐清市,此地物产丰富商业发达,现位列浙江省综合经济实力十大强镇第3位。除此之外,柳市镇以各类电器生产而出5G互联网将如何颠覆医疗行业?随着我国逐年加大对医疗体制改革以及新农村建设的投入,医疗行业发展迅猛,安防系统在其中的应用也广受关注。随着远程医疗技术的发展与近几年医患关系的恶化,当前的医疗安防体系从设计到应用上GitHub6大热门实时人脸识别开源项目!哪个最适合初级开发者?实时人脸识别系统在计算机视觉领域仍然是一个非常热门的话题,许多公司已经开发了自己的解决方案来尝试进入不断增长的市场。与传统的识别方法相比,实时人脸识别系统的优势在于在连续帧中使用同西圣ASN蓝牙耳机更好诠释轻盈和舒适前言不同以往,现如今蓝牙耳机的普及程度越来越高,几乎人手一副蓝牙耳机。随着科技的不断发展进步,蓝牙耳机也由从前的奢饰品到如今的飞入寻常百姓家,配置不断升级,性价比越来越高。而此次入电容触摸一体机适合在哪些行业中应用科技技术的不断发展,素有第五媒体数字标牌之称的电容触摸一体机,广告技术不再是单调的文字或图片显示,更多是以视频语音或动画展示,让消费者观看广告时不再有抵触,成为线下实体店的一道亮丽9。98万起,续航超400公里,比亚迪的这款e2,很适合上班传统两厢车市场早已是强弩之末,从畅销的飞度高尔夫,豪华市场的A3Sportback等车型,无论是在换代升级后被夸得如何天花乱坠,可落在实际销售中都已比不上从前。究其原因便是有二,一亚布力论坛听王传福讲述比亚迪的坚守与梦想6月9日,在2021年亚布力中国企业家论坛年会大变局下开新篇中国商业心灵全会上,比亚迪集团董事长兼总裁王传福入会为新理事,作为中国制造业企业家代表,发表了比亚迪的坚持主题演讲,讲述电动车燃爆火焰吞噬电梯,电梯智能化阻车如何普及?5月10日晚,成都市丛树家园小区一辆电瓶车在电梯内起火致多名同行乘客受伤,其中包括一个5个月大婴儿。根据监控显示电梯内有3名男子,一名女子抱着一名婴儿,男子把电动车推入电梯,就在电电动车事故频发,如何利用AI技术阻止电动车进电梯?一背景据数据统计显示,全国每年约发生2000起电动车火灾。今年以来,各地就连续发生多起致人伤亡的电动车火灾,给人们生命财产安全带来严重威胁,电动车安全管理形势严峻。当前现状1)安全安防视频可视化,打造智慧港口及码头解决方案一背景分析我国地域辽阔,江河水库湖泊海域资源丰富,其中水利信息化航道交通的安全通畅渔业的管理港口的安全运营等等,均需要现代化的监控设施和手段。在水利信息化系统中,水利部门可通过前端
混动系列比亚迪唐今天没事去店里随便看看车子,看了一下那个唐混动。以电为主油为辅这款唐的车型尺寸非常大,是一个7座车。长度是4870,宽度是1950,高度是1725。这个尺寸应该算是一个中大型的SU假如你要换手机号了,哪些东西需要换绑呢?当想换手机号时,可能一时半会儿不知道要换绑什么东西,希望这文章能帮到你一点,收藏备用。1银行卡换绑国有银行工商银行建设银行农业银行交通银行中国银行。商业银行招商银行浦发银行兴业银行华为会是下一个中兴吗?面对近期一系列外部噪音比如华为是否会成为下一个中兴?如何解决多国安全审查?美国市场大门紧闭?下一个倒下的会不会是华为?任正非作出一一回应。他对包括第一财经记者在内的媒体表示,应该说开源基于MIT开源协议,一款壁纸客户端,基于Electron构建一开源项目简介一款基于Electron壁纸客户端。二功能概述在线壁纸热门推荐动漫精选人物精选搜索我的壁纸我的收藏下载中心更多关于三技术选型Node。jsVue。jsElectron北京交付中心启动,高合车主的朋友圈扩大到83个城市高合汽车能给用户带来惊喜的不仅是产品,销售服务体系建立速度及质量也表现不俗。近日,高合汽车位于北京五方天雅汽车园的高合交付中心HiPhiDeliveryCenter及高合服务中心H北京上海惊现小三二奶培训班,生意火爆没有拆不散的家庭文章转自作者阿浪没有拆不掉的婚姻,只有不改变的自己!偌大的酒店礼堂里,讲师拿着麦克风激情演讲,她铿锵有力的发言回荡在酒店的每个角落。台下坐着的,是一群打扮精致的女性。她们各个浓妆艳今晨北京健康宝系统出现异常,无法显示数据2020年7月3日八点到九点之间,北京健康宝出现了异常,无法登陆,无法打开,显示不出正常的数据,办公楼入口检查点都排起了队。给早高峰上班的上班族造成了不小的困扰。因为目前北京防疫管大画幅相机漂流(北京第一站)Dobby迷上大画幅4台大画幅复古相机1次相机在城市间漂流的故事Z世代下,607080后的声响他们用自己的方式在这个时代留下印记关于这场旅行的故事你我一起见证内容来自微信公众号F64生产社第一站Dob大画幅相机漂流(北京站)我们的媒体人狼来啦玩转大画幅4台大画幅古典相机1场城市间的接力漂流一些平凡人生活的痕迹流浪的故事你我一起见证狼来啦来自北京的媒体人以下为风华小助理(以下使用A)和狼来啦(以下使用W)之间简短的访谈(在保持不偏华为欧拉概念股集体高开,诚迈科技涨超8,营收却下降46。9就在今天的9月27日,华为欧拉概念股集体高开,诚迈科技涨幅高达8。37,润和软件,科蓝软件竞价纷纷大涨。华为公司以智能手机为核心,在今年上半年创收1357亿人民币,同比上年大幅度下中国这招不得了,让美国都束手无策,科技全球第一的位置要换人?哈喽大家好,我是你们的朋友沫然,今天给大家带来最新科技领域资讯,接下来看一下吧。现如今,我们国家在科技上取得的成就让世人震惊。一些科技取得的进展,让很多的科技强国感觉到了威胁,进而