当前位置: 首页 > news >正文

网站关键字多少个硬笔书法网站是谁做的

网站关键字多少个,硬笔书法网站是谁做的,动漫王也头像,公司网站百度排名没有了一#xff1a;进程池与线程池 提交任务的两种方式#xff1a; 1、同步调用#xff1a;提交完一个任务之后#xff0c;就在原地等待#xff0c;等任务完完整整地运行完毕拿到结果后#xff0c;再执行下一行代码#xff0c;会导致任务是串行执行 2、异步调用#xff1a;提… 一进程池与线程池 提交任务的两种方式 1、同步调用提交完一个任务之后就在原地等待等任务完完整整地运行完毕拿到结果后再执行下一行代码会导致任务是串行执行 2、异步调用提交完一个任务之后不是原地等待而是直接执行下一行代码会导致任务是并发执行的结果future对象会在任务运行完毕后自动传给回调函数   from concurrent.futures import ThreadPoolExecutor, ProcessPoolExecutor import time, random, osdef task(name, n):print(%s%s is running % (name, os.path.getpid()))time.sleep(random.randint(1, 3))return n ** 2if __name__ __main__:# print(os.cpu_count())p ProcessPoolExecutor(4)l []for i in range(5):# 同步提交# res p.submit(task, 进程pid:, i).result()# print(res)# 异步提交futurep.submit(task,进程pid:,i)l.append(future)p.shutdown(waitTrue) # 关闭进程池的入口并且在原地等待进程池内所有任务运行完毕for future in l:print(future.result)print(主) View Code from concurrent.futures import ThreadPoolExecutor,ProcessPoolExecutor import time,random,os import requestsdef get(url):print(%s GET %s %(os.getpid(),url))time.sleep(3)responserequests.get(url)if response.status_code 200:resresponse.textelse:res下载失败parse(res)def parse(res):time.sleep(1)print(%s 解析结果为%s %(os.getpid(),len(res)))if __name__ __main__:urls[https://www.baidu.com,https://www.sina.com.cn,https://www.tmall.com,https://www.jd.com,https://www.python.org,https://www.openstack.org,https://www.baidu.com,https://www.baidu.com,https://www.baidu.com,]pProcessPoolExecutor(9)l[]starttime.time()for url in urls:futurep.submit(get,url)l.append(future)p.shutdown(waitTrue)print(主,time.time()-start) View Code from concurrent.futures import ThreadPoolExecutor,ProcessPoolExecutor import time,random,os import requestsdef get(ur1):print(%s GET %s%(os.getpid(),ur1))time.sleep(3)responserequests.get(ur1)if response.status_code200:resresponse.textelse:res下载失败parse(res)def parse(res):time.sleep(1)print(%s 解析结果为%s%(os.getpid(),len(res)))if __name__ __main__:urls[https://www.baidu.comhttps://www.youku.comhttps://www.wangyiyun.comhttps://www.baidu.comhttps://www.baidu.comhttps://www.baidu.com]pProcessPoolExecutor(9)l[]starttime.time()for url in urls:futurep.submit(get,url)l.append(future)p.shutdown(waitTrue)print(主,time.time()-start) View Code from concurrent.futures import ThreadPoolExecutor, ProcessPoolExecutor from threading import current_thread import time, random, os import requsetsdef get(url):print(%s GET %s % (current_thread().name, url))time.sleep(3)respose requsets.get(url)if respose.status_code 200:res respose.textelse:res 下载失败return resdef parse(future):time.sleep(1)res future.result()print(%s 解析结果为%s % (current_thread().name, len(res)))if __name__ __main__:urls [https://www.baidu.comhttps://www.youku.comhttps://www.wangyiyun.comhttps://www.baidu.comhttps://www.baidu.comhttps://www.baidu.com]p ProcessPoolExecutor(9)start time.time()for url in urls:future p.submit(get, url)# 异步调用提交完一个任务之后不是原地等待# 而是直接执行下一行代码会导致任务是并发执行的# 结果future对象会在任务运行完毕后自动传给回调函数future.add_done_callback(parse) # parse会在任务运行完毕后自动触发然后接收一个参数future对象 p.shutdown(waitTrue)print(主, time.time() - start)print(主, os.getpid()) View Code from concurrent.futures import ThreadPoolExecutor,ProcessPoolExecutor from threading import current_thread import time,random,os import requestsdef get(url):print(%s GET %s%(current_thread().name,url))time.sleep(3)responserequests.get(url)if response.status_code200:resresponse.textelse:res下载失败return resdef parse(future):time.sleep(1)resfuture.result()print(%s 解析结果为%s%(current_thread().name,len(res)))if __name__ __main__:urls [https://www.baidu.comhttps://www.youku.comhttps://www.wangyiyun.comhttps://www.baidu.comhttps://www.baidu.comhttps://www.baidu.com]pThreadPoolExecutor(4)for url in urls:futurep.submit(get,url)future.add_done_callback(parse)p.shutdown(waitTrue)print(主,current_thread().name) View Code   二协程 协程介绍 协程是单线程下的并发又称微线程英文名 Coroutine 一句话说明什么是线程协程是一种后能耗态的轻量级线程即协程是由用户程序自己控制调度的。 需要强调的是 #1. python的线程属于内核级别的即由操作系统控制调度如单线程遇到io或执行时间过长就会被迫交出cpu执行权限切换其他线程运行 #2. 单线程内开启协程一旦遇到io就会从应用程序级别而非操作系统控制切换以此来提升效率非io操作的切换与效率无关 对比操作系统控制线程的切换用户在单线程内控制协程的切换 优点如下 #1. 协程的切换开销更小属于程序级别的切换操作系统完全感知不到因而更加轻量级 #2. 单线程内就可以实现并发的效果最大限度地利用cpu 缺点如下 #1. 协程的本质是单线程下无法利用多核可以是一个程序开启多个进程每个进程内开启多个线程每个线程内开启协程 #2. 协程指的是单个线程因而一旦协程出现阻塞将会阻塞整个线程 总结协程特点 1、必须在只有一个单线程里实现并发 2、修改共享数据不需要加锁 3、用户程序里总结保存多个控制流的上下文栈 4、附加一个协程遇到IO操作自动切换到其它协程如何实现检测IOyieldgreenlet都无法实现就用到了gevent模块select机制   基于单线程下实现并发只有一个主线程如下图可利用的CPU只有一个的情况下实现并发并发的本质切换保存状态 CPU正在运行一个任务会在两种情况下自习其他任务切换由操作系统强制控制一种情况是该任务发生了阻塞另外一种情况是该任务占用时间过长或有一个优先级更高的程序代替了它 #串行执行 import time def func1():for i in range(10000):i1def func2():for i in range(10000):i1starttime.time() func1() func2() stoptime.time() print(stop -start) 串行执行   #1 yiled可以保存状态yield的状态保存与操作系统的保存线程状态很像但是yield是代码级别控制的更轻量级 #2 send可以把一个函数的结果传给另外一个函数以此实现单线程内程序之间的切换   #基于yield并发执行 import time def func1():while True:print(func1)100001yielddef func2():gfunc1()for i in range(10000):print(func2)time.sleep(100)i1next(g)starttime.time() func2() stoptime.time() print(stop-start) yield并发执行  ps在介绍进程理论时提及进程的三种执行状态而线程才是执行单位所以可以将上图理解为线程的三种状态   转载于:https://www.cnblogs.com/zedong/p/9622750.html
http://www.zqtcl.cn/news/301131/

相关文章:

  • 案例建网站宿松网站建设公司
  • 秦皇岛网站开发wordpress免费国内主题
  • seo网站推广推荐阳江房管局查询房产信息网
  • php服装商城网站建设个人网站免费空间
  • 做内贸注册什么网站广州市建设交易中心网站
  • 点样用外网访问自己做的网站北京市网站设计公司网址
  • 用备案的网站做违法网站wordpress个性404
  • 中国制造网官方网站下载安装我国做民宿的网站
  • 英文网站seo广州市软件开发有限公司
  • 锦州网站建设渠道山西做网站的公司有哪些
  • 4线城市搞网站开发丹灶网站建设公司
  • 青岛网站建设seo优化wordpress分类标题自定义
  • 网站开发本地环境在海南注册公司需要多少钱
  • 济南网站开发去哪儿旅行app下载安装
  • 大城 网站北京做网站男生工资
  • 赣州网站建设百家号免费软件网
  • 在合肥做网站多少钱网站开发外包平台
  • 百度指数查询平台网站建设SEO优化哪家好
  • 网站怎么在成都备案中企动力如何
  • 免费数据统计网站app推广拉新一手渠道
  • 网站推广效果不好原因zac seo博客
  • 高端网站设计合肥网站建设个人网站建设公
  • 廊坊建站模板系统做效果图的网站
  • 建网站打开需要验证四川省成都市建设厅官网
  • 网站文章列表如何排版珠海建设工程信息网站
  • 郑州个人做网站建设银行招聘网站
  • 杭州网站设计公司联系亿企邦网站怎么上百度
  • 网站建设的未来网站不备案访问
  • 网站改版效果图怎么做网站建设的五个基本要素
  • 河南建站网站做o2o网站需要多少钱