当前位置: 首页 > 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://www.huolong8.cn/news/340057/

相关文章:

  • 人工智能设计网站外贸公司网站模板免费
  • 哪些行业网站推广做的多建设银行网银盾不能打开网站
  • wordpress服务器系统seo推广优化排名软件
  • 网站预算表怎么做上海网站设计专业团队
  • 网站横向菜单做精神科网站价格
  • 如何做地图的ppt模板下载网站wordpress 自定义结构
  • 怎么样做网站才能适应手机屏幕用html做的网站加背景音乐
  • 上海网站建设广告语三星网上商城优惠码
  • 工商局注册公司网站设计制作个人网站
  • 长沙毕业设计代做网站价格合肥seo整站优化网站
  • 南通精诚建设集团有限公司网站做图片素材的网站
  • 宿迁网站制作公司三亚最新通告文昌最新通告
  • 网站建设资金的请示泉州网站建设报价
  • 网站开发题目女生做网站编辑怎么样
  • 做室内3d设计的网站旅游网站建设的现状
  • 云南网站建设及优化南昌招网页设计师的公司
  • 电子商务网站开发实训总结godaddy
  • 无锡新吴区住房建设和交通局网站wordpress 运行速度慢
  • 制作网站房子竣工验收在哪个网站查
  • 云浮市住房和城乡建设局网站wordpress如何修改后台登录地址
  • 网站的页面大小包装盒网站模板下载
  • 手机品牌网站网站模板分享
  • 建设学校网站的意义搜索引擎官网
  • 百度的网站关键词被篡改赣州九一人才网最新招聘
  • 做外包网站的公司是怎样的哔哩哔哩网站建设模板
  • 南安住房与城乡建设部网站广州seo公司排行
  • 廊坊兼职网站建设网站建设与管理是课程
  • 设计师如何注册个人网站自动升级wordpress失败
  • 网站怎样注册站长
  • 请问那个网站做推广好点21ic项目外包平台