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

wordpress 千万数据莱芜seo推广

wordpress 千万数据,莱芜seo推广,网站制作公司茂名,北京餐饮设计公司哪家好一、数据共享 from multiprocessing import Manager 把所有实现了数据共享的比较便捷的类都重新又封装了一遍#xff0c;并且在原有的multiprocessing基础上增加了新的机制list、dict 机制#xff1a;支持的数据类型非常有限 list、dict都不是数据安全的#xff0c;需要自己…一、数据共享   from multiprocessing import Manager   把所有实现了数据共享的比较便捷的类都重新又封装了一遍并且在原有的multiprocessing基础上增加了新的机制list、dict   机制支持的数据类型非常有限     list、dict都不是数据安全的需要自己加锁来保证数据安全 from multiprocessing import Manager,Process,Lockdef work(d,lock):with lock:d[count] - 1if __name__ __main__:lock Lock()with Manager() as m: # m Manager()dic m.dict({count:100})p_lst []for i in range(10):p Process(targetwork, args(dic, lock))p_lst.append(p)p.start()for p in p_lst:p.join()print(dic) #{count: 90} with ......一大段语句 dis模块 python的上下文管理 在执行一大段语句之前自动做某个操作 open 在执行一大段语句之后自动做某个操作 close面向对象的魔术方法双下杠杠方法 # 回调函数 in Poolimport os from multiprocessing import Pooldef func(i):print(第一个任务, os.getpid())return **idef call_back(res): #回调函数print(回调函数, os.getpid())print(res---, res)if __name__ __main__:p Pool()print(主进程, os.getpid())p.apply_async(func, args(1,), callbackcall_back)p.close()p.join()   func执行完毕之后执行callback函数   func的返回值会作为callback的参数   回调函数是在主进程中实现的   应用场景子进程有大量运算要做回调函数等待结果做简单处理 import re from urllib.request import urlopen from multiprocessing import Poolurl_lst [http://www.baidu.com,http://www.sohu.com,http://www.sogou.com,http://www.4399.com,http://www.cnblogs.com, ]def get_url(url):response urlopen(url)ret re.search(www\.(.*?)\.com, url)print(%s finished % ret.group(1))return ret.group(1),response.read()def call(content):url,con contentwith open(url.html, wb)as f:f.write(con) if __name__ __main__:p Pool()for url in url_lst:p.apply_async(get_url,args(url,),callbackcall)p.close()p.join() 子进程去访问网页主进程处理网页的结果   二、线程理论基础   进程是计算机中最小的资源分配单位进程对于操作系统来说还具有一定的负担   创建一个进程操作系统分配的资源大约有代码数据文件等 1、为什么要有线程   线程是轻量级的概念他没有属于自己的进程资源一条线程只负责执行代码没有自己独立的代码、数据以及文件   线程是计算机中能被CPU调用的最小的单位当前大部分计算机中的CPU都是执行的线程中的代码   线程与进程之间的关系每一个进程中都至少有一条线程在工作 线程的特点   同一个进程中的所有线程的资源是共享的   轻量级 没有自己的资源 进程与线程之间的区别       占用的资源、调度的效率、资源是否共享 线程的并行问题   线程可以并行java、cc#等   在cpython中一个进程中的多个线程是不可以并行的   原因是Cpython解释器内部有一把全局解释器锁GIL所以线程不能充分利用多核同一时刻同一进程中的线程只有一个能被cpu执行   GIL锁确实是限制了你程序的效率但目前可以帮助你提高线程之间切换的效率   如果是想写高计算型的就要多进程或者换一个解释器 2、threading 模块 # 并发import os from threading import Threaddef func(i):print(子线程, i, os.getpid())print(主线程, os.getpid()) for i in range(10):t Thread(targetfunc, args(i,))t.start() # 进程和线程的差距import os import time from threading import Thread from multiprocessing import Processdef func(i):print(子, os.getpid())if __name__ __main__:start time.time()t_lst []for i in range(100):t Thread(targetfunc, args(i,))t.start()t_lst.append(t)for t in t_lst:t.join()end time.time()-startstart time.time()t_lst []for i in range(100):p Process(targetfunc, args(i,))p.start()t_lst.append(p)for p in t_lst:p.join()end2 time.time()-startprint(end, end2) #0.0279843807220459 13.582834720611572 # 线程间的数据共享from threading import Threadnum 100 def func():global numnum - 1 #每个线程都-1t_lst [] for i in range(100):t Thread(targetfunc) #创建一百个线程t.start()t_lst.append(t) for t in t_lst:t.join() print(num) #0  Thread 类的其他用法 Thread实例对象的方法# isAlive(): 返回线程是否活动的。# getName(): 返回线程名。# setName(): 设置线程名。threading模块提供的一些方法# threading.currentThread(): 返回当前的线程变量。# threading.enumerate(): 返回一个包含正在运行的线程的list。正在运行指线程启动后、结束前不包括启动前和终止后的线程。# threading.activeCount(): 返回正在运行的线程数量与len(threading.enumerate())有相同的结果。 from threading import currentThread,Thread def func():time.sleep(2)t Thread(targetfunc) t.start() print(t.is_alive()) #True判断线程是否活着 print(t.getName()) #Tread-1 t.setName(tt) print(t.getName()) #tt改名字def func():print(子线程, currentThread().ident)time.sleep(2) print(主线程,currentThread().ident) t Thread(targetfunc) t.start() #currentThread().ident返回线程的pidfrom threading import enumerate def func():print(子进程, currentThread().ident)time.sleep(2)print(主进程, currentThread().ident) for i in range(10):t Thread(targetfunc)t.start() print(len(enumerate())) #enumerate()返回一个包含正在运行的线程的listlen(list)from threading import activeCount def func():print(子线程, currentThread().ident)time.sleep(2)print(主线程, currentThread().ident) for i in range(10):t Thread(targetfunc)t.start() print(activeCount()) #activeCount()返回正在运行的线程数量与len(threading.enumerate())有相同的结果 示例 3、守护线程 import time from threading import Threaddef func():while True:time.sleep(1)print(123)def func2():print(func2 start)time.sleep(3)print(func2 end)t1 Thread(targetfunc) t2 Thread(targetfunc2) t1.setDaemon(True) t1.start() t2.start() print(主线程代码结束) # func2 start #主线程代码结束 #123 #123 #func2 end     守护线程 是在主线程代码结束之后再等待子线程执行结束后才结束   主线程结束  就意味着主进程结束   主线程等待所有的线程结束   主线程结束了以后  守护线程会随着主进程的结束而随之结束  不是随着代码的结束而结束    ################################################################################# 线程线程和进程之间的关系 每个进程内都有一个线程 线程是不能独立存在的线程和进程之间的区别 同一个进程中线程之间的数据是共享的 进程之间的数据是隔离的 线程是被cpu执行的最小单位 操作系统调度 进程是计算机中最小的资源分配单位python GIL锁 全局解释器锁 全局锁 cpython解释器中的 锁线程 同一时刻同一个进程只会有一个线程访问CPU 锁的是线程而不是数据 当程序是高IO型的 多线程 当程序是高计算(CPU)型的 多进程 cpu*1 ~ cpu*2threadingThread 守护线程 主线程结束之后才结束socket_server IO多路复用 多线程框架 并发的效果 多线程、协程的概念 flask爬虫 线程池 协程set、dict、list生成器面向对象的进阶 魔术方法管道socket_server的源码 转载于:https://www.cnblogs.com/yzh2857/p/9699875.html
http://www.yutouwan.com/news/479109/

相关文章:

  • 杭州网站建设icp备网站建设的相应技术
  • 重庆亮哥做网站网络推广费用大概价格
  • 网站开发笔试题网站建设新闻动态
  • 中国移动网站网络营销渠道的特点包括
  • 判断网站做的好坏临沂建展示网站
  • 公司建立网站爆款采集推广引流软件
  • 盈江城乡建设局网站做网站游燕
  • 奇艺广州网站建设熊掌号淘宝客网站要多大空间
  • 郑州网站推广方式有原型怎么做网站
  • 企业网站建设的上市公司景德镇建设企业网站
  • 安徽建设厅网站地址北京建网站的公司
  • 相亲网站上做绿叶的女人很多山西公司怎么做网站
  • 国内优秀网页网站网站建设后期收什么费用
  • 商城式网站具备哪些功能吗太太猫代理网址
  • 哪家做网站的比较好o2o分销系统网站建设
  • 做网站和网站页面设计小说网站开发的看书软件
  • app公司网站建设用php写的网站
  • 中国十大品牌网站求一个自己做的网站链接
  • 电商初学者搜索引擎优化的作用是什么
  • 网站空间怎么购买网站开发 参考文献
  • 彩票网站链接怎么做怎么把一个网站的信息都抓取下来
  • 手机网站什么技术开发网站推广是网站建设完成之后的长期工作。
  • 泉州那家做网站公司好昆明网站排名优化公司哪家好
  • 怎么自己做网站qq东营建设银行电话号码
  • 企业网站源码带手机版如何衡量网站的价值
  • 梅州建站网络做网站 需要什么营业执照
  • 电影网站建设模板工行gcms系统
  • icp备案网站接入信息ip地址段婚恋网站建设方案
  • 网站维护页面什么是软文文案
  • 建筑贴图素材网站wordpress 图像大小