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

南宁网站推广v1高端网站开发注意事项

南宁网站推广v1,高端网站开发注意事项,建设银行江门市新会网站,安卓手机网页视频怎么下载复习#xff1a; # 锁 # 多个进程在同一时间只有一个进程能进入代码去执行# 信号量 Semaphore from multiprocessing import Semaphore # 用锁的原理实现的。内置了一个计数器 #在同一时间 只能有指定数量的进程执行某一段被控制住的代码#事件 # wait阻塞收到事件状态控制的同…复习 # 锁 # 多个进程在同一时间只有一个进程能进入代码去执行# 信号量 Semaphore from multiprocessing import Semaphore # 用锁的原理实现的。内置了一个计数器 #在同一时间 只能有指定数量的进程执行某一段被控制住的代码#事件 # wait阻塞收到事件状态控制的同步组件 # 状态 True False 利用is_set查看#true--false clear()#false--true set() #wait 状态为True不阻塞状态为False的时候阻塞# 锁 多个进程在同一时间只有一个进程能进入代码去执行 # 信号量 在同一时间 只能有指定数量的进程执行某一段被控制住的代码 # 事件 进程要执行必须等通知 # 进程池 内有固定数目的进程。轮流利用进程#队列 # Queue # put() 当队列满的时候阻塞等待队列有空位置 # get() 当队列空的时候阻塞等待队列有数据 # full() empty() 不太准确 # JoinableQueue# get() task_done# put() join 等待数据取完并处理完 管道 案例1 def func(conn):conn.send(hello) if __name__ __main__:conn1, conn2 Pipe()Process(targetfunc,args(conn1,)).start()print(conn2.recv())#运行结果 # hello 案例2 def func(conn1,conn2):conn2.close() # 将不用的链接关闭while True:try:msgconn1.recv()# if msg is None:breakprint(msg)except EOFError:conn1.close()break if __name__ __main__:conn1, conn2 Pipe()Process(targetfunc,args(conn1,conn2)).start() #参数必须将conn1,conn2都传过去conn1.close()for i in range(5):conn2.send(hello)# conn2.send(None)conn2.close() 运行结果 管道实现生产者消费者模型   from multiprocessing import Process,Pipe,Lock import time import random def producer(con,pro,name,food):con.close()for i in range(5):time.sleep(random.random())f%s生产%s第%i个%(name,food,i)print(f)pro.send(f)pro.close() def consumer(con,pro,name):pro.close()while True:try:foodcon.recv()print(%s吃了%s%(name,food))time.sleep(random.random())except EOFError:con.close()breakif __name__ __main__:con,proPipe()pProcess(targetproducer,args(con,pro,egon,饺子))p.start()cProcess(targetconsumer,args(con,pro,alex))c.start()c1 Process(targetconsumer, args(con, pro, Tony))c1.start()con.close()pro.close()# Pipe 数据不安全性 多个消费者同时取一个数据 # 管道是进程数据不安全的 利用加锁 # IPC 运行结果 管道实现生产者消费者模型-改进 from multiprocessing import Process,Pipe,Lock import time import random def producer(con,pro,n):con.close()for i in range(n):pro.send(i)pro.send(None)pro.send(None)pro.close()def consumer(lock,con,pro,name):pro.close()while True:lock.acquire()foodcon.recv()lock.release()if food:print(%s吃了%s%(name,food))time.sleep(random.random())else:con.close()breakif __name__ __main__:con,proPipe()lockLock()pProcess(targetproducer,args(con,pro,10))p.start()cProcess(targetconsumer,args(lock,con,pro,alex))c.start()c1 Process(targetconsumer, args(lock,con, pro, Tony))c1.start()con.close()pro.close()# Pipe 数据不安全性 多个消费者同时取一个数据 # 管道是进程数据不安全的 利用加锁 # IPC # 队列 进程之间数据安全 # 队列管道锁 运行结果 进程间数据共享 from multiprocessing import Manager,Process,Lock def main(dict,lock):lock.acquire()dict[count]-1lock.release() if __name__ __main__:mManager() # object 对象lLock()dictm.dict({count:100})p_list[]for i in range(50):pProcess(targetmain,args(dict,l))p.start()p_list.append(p)for i in p_list:i.join()print(主进程,dict) 运行结果 进程池-map # 为什么会有进程池的概念#效率# 每开启进程开启属于这个进程的内存空间# 寄存器 堆栈 文件# 进程过多 操作系统的调度 # 进程池# python中的 先创建一个属于进程的池子# 这个池子指定能存放多少个进程# 先将这些进程创建好 # 更高级的进程池 python没有# n,m# n 只起n个进程# 加进程# 一直加到上限m个# 进程空闲时再减少进程一直减到n个。。。 from multiprocessing import Pool,Process def func(n):for i in range(2):print(n1) def func2(n):# n[0]# n[1]for i in range(2):print(n[0]) # Process 超过5个进程就用进程池。一般个数是cpu1 import time if __name__ __main__:starttime.time()poolPool(5) # 5个进程pool.map(func,range(6)) #100个任务自带join#pool.map(func2,range(100)) # 100个任务自带joinpool.map(func2, [(alex,1),egon]) # 100个任务自带joint1time.time()-startstarttime.time()# 等价于多进程p_list[]for i in range(6):pProcess(targetfunc,args(i,))p_list.append(p)p.start()for p in p_list:p.join()t2 time.time() - startprint(t1,t2)运行结果 进程池-apply from multiprocessing import Pool,Process import time,os def func(n):print(start func%s%n,os.getpid())time.sleep(1)print(end func%s%n,os.getpid())if __name__ __main__:pPool(5)# for i in range(10):# p.apply(func,args(i,)) # 同步for i in range(10):p.apply_async(func, args(i,)) # 异步。主进程结束就结束了。没有等子进程结束p.close() # 结束进程池接收任务p.join() # 感知进程池中的任务执行结束。然而进程池中的进程永远是活着的运行结果 进程池的返回值 # pPool() # p.map(funcname,iterable) 默认异步的执行任务且自带close和join # p.apply() 同步调用 # p.apply_async 异步调用和主进程完全异步 需要手动close和joinapply # from multiprocessing import Pool # def func(i): # return i*i # # if __name__ __main__: # pPool(5) # 如果不写5默认为cpu个数 # for i in range(10): # resp.apply(func,args(i,)) # print(res)apply_async异步 # from multiprocessing import Pool # import time # def func(i): # time.sleep(0.5) # return i*i # # if __name__ __main__: # pPool(5) # 如果不写5默认为cpu个数 # for i in range(10): # resp.apply_async(func,args(i,)) # print(res.get()) # 阻塞等待结果apply_async异步 # from multiprocessing import Pool # import time # def func(i): # time.sleep(0.5) # return i*i # # if __name__ __main__: # pPool(5) # 如果不写5默认为cpu个数 # res_list[] # for i in range(10): # resp.apply_async(func,args(i,)) # res_list.append(res) # # print(res.get()) # 阻塞等待结果 # print(123) # for res in res_list:print(res.get())#map异步 from multiprocessing import Pool import time def func(i):time.sleep(0.5)return i*iif __name__ __main__:pPool(5) # 如果不写5默认为cpu个数retp.map(func,range(10))print(ret)运行结果 进程池的回调函数 # 回调函数 import os from multiprocessing import Pool def func1(n):print(func1:,os.getpid())print(in func1)return n*ndef func2(nn):print(func2:,os.getpid())print(in func2)print(nn)if __name__ __main__:print(主进程:, os.getpid())pPool(5)p.apply_async(func1,args(8,),callbackfunc2)p.close()p.join() 运行结果 回调函数2 # 回调函数 爬虫用到 # 爬虫 访问一个网址将数据从网址上下载下来。数据是bytes转成字符串。处理字符串 from multiprocessing import Pool def func1(n):return n1 def func2(m):print(m) if __name__ __main__:pPool(5)for i in range(10,20):p.apply_async(func1,args(i,),callbackfunc2)p.close()p.join() 运行结果 回调函数爬虫例子 import requests from urllib.request import urlopen from multiprocessing import Pool # responserequests.get(http://www.baidu.com) # print(response) # print(response.__dict__) # print(response.status_code) # print(response.content.decode(utf-8))def get(url):responserequests.get(url)if response.status_code200:return url,response.content.decode(utf-8)def get_urllib(url):returlopen(url)return ret.read().decode(utf-8)def call_back(args):url,contentargsprint(url,len(content))if __name__ __main__:url_list[http://www.cnblogs.com,http://www.baidu.com,http://www.sogou.com,http://www.suhu.com,]pPool(5)for url in url_list:p.apply_async(get,args(url,),callbackcall_back)p.close()p.join() 运行结果 使用进程池qq聊天 server端   import socket from multiprocessing import Pool def func(conn):conn.send(bhello)print(conn.recv(1024).decode(utf-8))conn.close()if __name__ __main__:pPool(5)sksocket.socket()sk.bind((127.0.0.1,8080))sk.listen()while True:conn, addr sk.accept()p.apply_async(func,args(conn,))sk.close() client端 import socketsksocket.socket() sk.connect((127.0.0.1,8080))retsk.recv(1024).decode(utf-8) print(ret) msginput().encode(utf-8) sk.send(msg) sk.close() 运行结果
http://www.huolong8.cn/news/398453/

相关文章:

  • 网站建设怎么选择MySQL数据库大小弹窗视频网站
  • 郑州网站建设开发公司北京文化馆设计公司怎么看
  • 免费公司网站申请如何分析竞争对手网站
  • 网站内页seo查询wordpress怎么pjax
  • 网站备案网站要有内容吗营销型网站制作哪个好薇
  • 淘宝网站制作教程只有一个人网站开发
  • 关于美术馆网站建设的方案做网站英文编辑有前途
  • 网站外连网站域名必须备案吗
  • 做网站有哪些要求建设银行网站短信错误6次
  • 做汽车团购的网站wordpress选择php
  • 做淘宝客没有网站怎么做北京高级网站建设
  • 电子商务网站建设维护实训报告网站建设外包兼职
  • 云南网站建设小程序开发个人网站的优点
  • 如何做网站的充值功能网站备案号密码找回
  • 麻章手机网站建设公司wordpress源代码下载
  • 网上购物网站开发开题报告net做网站遇到的问题
  • pageadmin自助建站网站网页转小程序教程
  • 汉阴做网站网页设计师有前途吗
  • 网站架构图用什么做wordpress 顶部 浮动
  • 网站 云建站山东济南网站建设公司哪家好
  • wordpress电影站主题注册 网站开发 公司
  • 五里桥街道网站建设韩国还有出线的可能
  • 实惠高端网站设计品牌企业标识设计
  • 在国外建设网站驾校门户网站模板
  • 银川网站公司西安网站制作托
  • 珠海建网站网络营销策划书的结构及技巧
  • 页面在线设计网站网站后台无法更
  • 廊坊网络推广建站大良营销网站建设价格
  • 重庆做石材的网站企业网站运营方案
  • 网站开发通用流程图做打鱼网站需要多少钱