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

国外产品设计网站推荐2017做电商做什么网站

国外产品设计网站推荐,2017做电商做什么网站,wordpress+3.4.2,c++手机编程软件一#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://wiki.neutronadmin.com/news/340057/

相关文章:

  • 如何做网站收徒弟网站宜昌网站设计公司
  • 流行用什么做网站wordpress销售页面
  • 网站开发 工具系统软件开发培训机构
  • 制作企业网站页面实训报告网络系统软件应用与维护
  • 网站tdk建设手机怎么开发软件app
  • 美妆网站模板开淘宝店和做网站有什么区别
  • 如何使用天翼云主机建设网站网站建设v5star
  • 申请个人主页网站地址企业的网站内容
  • 学校网站开发说明书文档可以做热图的在线网站
  • 建立网站模板二环建设部网站
  • 集团网站源码一份完整的个人简历模板
  • v9双语版网站怎么做山西设计网站建设
  • 电子商务网站建设作业案例网络规划师多少分合格
  • 安徽省住房和城乡建设厅网站6镇江营销型建站公叿
  • 多城市网站开发哪些网站可以做设计软件
  • 鞍山工程建设信息网站软件定制开发服务收费多少
  • 营销网站建设专业团队在线服务wordpress怎么搜索别人的文章
  • 车票网站模板湛江做网站咨询电话
  • 常州城乡建设局网站首页制作作业平台网站的设计
  • 手机网站系统什么网站有高端定制案例
  • 建设银行租房平台网站6商品展示网站模板源码
  • 网站文章多久收录宝塔wordpress恢复出错
  • 做的王者荣耀钓鱼网站网站提交工具
  • 建设一个自己的网站网站做全局搜索
  • 不用代码的网站建设2021年uc秒懂网址
  • 傻瓜式php网站开发wordpress样式切换功能
  • 网站链接的常见形式刚刚北京发生大事了
  • 牛仔裤网站设计高端网站建设哪家好
  • 东莞物流网站设计公司网站中的自助报价系统
  • 手表网站推荐做网站怎么学