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

广州企业网站建设方案网站建设招标书

广州企业网站建设方案,网站建设招标书,做电影网站需要哪些条件,做网站是不是就能上传东西Python python 没有多态,而是鸭子类型 多继承,没有接口,可通过语法糖实现接口的作用 lambda中只能有一句 "/"表示之前的参数是必须是位置参数,”**“表示是后面的必须是关键字参数 Python多进程 Python 多线程是伪多线…

Python
python 没有多态,而是鸭子类型
多继承,没有接口,可通过语法糖实现接口的作用
lambda中只能有一句
"/"表示之前的参数是必须是位置参数,”**“表示是后面的必须是关键字参数

Python多进程

在这里插入图片描述

Python 多线程是伪多线程

多线程子线程会随着主线程结束而中断,因此一般在主线程中调用thread.join()

线程方法

import threading t = thread.Thread() t.start(); # 没有返回值,若需要返回值可继承该类,在类中保存计算结果,用以获取 # 或者传入全局结果参数,
import thread # threading 封装了thread
import threadpool # 三方库

import threading
t = thread.Thread()
t.start();
# 没有返回值,若需要返回值可继承该类,在类中保存计算结果,用以获取
# 或者传入全局结果参数,
import thread # threading 封装了thread
import threadpool # 三方库
# 线程池
import asyncio
async def coro(i):print("core start",i)ret = await get(i) # 此处为耗时的io等操作print("core end",i)return ret
async def get(i):await asyncio.sleep(5)return i
loop = asyncio.get_event_loop()
a = [asyncio.ensure_future(coro(i)) for i in range(10)]
loop.run_until_complete(asyncio.wait(a))
loop.close()
print([i.result() for i in a])import concurrent.futures
with concurrent.futures.ThreadPoolExecutor() as pool:results = pool.map(function,args)   # 注意此处是任务提一提交完,args为参数列表的列表# result 线程的结果# 或者future = pool.submit(function,args)  # 每次提交一个future.result() # 结果for futures in futures: # 顺序执行xxxxfor futures in concurrent.futures.as_completed(futures): # 不会按照顺序执行,那个线程先结束先执行那个xxxx

Python协程

单线程的IO多路复用,使用了单线程中IO阻塞的那一段时间,但其实还是顺序执行,按照IO阻塞切换,因此不会出现协程安全问题,可以说是异步操作,开销小,切换容易。

在这里插入图片描述

GIL锁:全局解释器锁,Cython

cpu计算时线程需要获取GIL锁,只有一个,因此多核cpu也只有一个线程可以执行,主要防止多线程垃圾回收不安全

GIL只保证有一个线程运行,但不保证线程何时切换,因此还有线程安全问题。

程序代码现线程安全问题还是要加LOCK

import threading
lock = threading.Lock()
lock.acquire()
lock.release()
# 或者
with lock:xxxx 

执行IO操作时会释放锁,因此对于IO密集型任务,可以用多线程,计算密集型,不能发挥多核,多线程作用。

引用计数法+循环检测:GC

面向对象

类中的变量是静态变量,方法通过@staticmethod修饰,是静态,self.xxx=yy 实例变量

WWW

import urllib.request
if __name__ == '__main__':data = urllib.parse.urlencode({'wd':'python'}).encode("utf8")request = urllib.request.urlopen("http://baidu.com",data=data)with request:msg,hd = request.read(),request.info()print(msg)print(hd)

SMTP

# smtplib email 配合使用
# 或是unix系统中的sendmail命令

SOCKET

# 旧版本异步通信
import asyncore
class HTTPClient(asyncore.dispatcher):def __init__(self,host):#  初始化父类asyncore.dispatcher.__init__(self)# 创建一个socket对象self.create_socket()# 连接服务器端self.connect((host,80))#发送优化self.buffer = b'GET /HTTP/1.1\r\nHost: www.baidu.com\r\n\r\n'def handle_connect(self):print('服务器连接成功')def handle_close(self):print('服务器连接断开')self.close()def readable(self):return Truedef handle_read(self):# 指定一次读取1024个字节,如果一次没有读完的话,那么事件循环会分多次把内容读完为止print(self.recv(1024).decode())def writable(self):return (len(self.buffer)>0)def handle_write(self):sent = self.send(self.buffer)self.buffer = self.buffer[sent:]
if __name__ == '__main__':HTTPClient('www.baidu.com')asyncore.loop()import asyncore
import socketclass EchoHandler(asyncore.dispatcher_with_send):def handle_read(self):data = self.recv(8192)if data:self.send("hello".encode('utf8')+data)
class EchoServer(asyncore.dispatcher):def __init__(self, host, port):asyncore.dispatcher.__init__(self)self.create_socket(socket.AF_INET, socket.SOCK_STREAM)self.set_reuse_addr()self.bind((host, port))self.listen(5)def handle_accept(self):pair = self.accept()if pair is not None:sock, addr = pairprint('Incoming connection from %s' % repr(addr))handler = EchoHandler(sock)
if __name__ == '__main__':server = EchoServer('10.101.33.82', 8080)asyncore.loop()
import asyncio
async def handle_echo(reader, writer):while True:data = await reader.read(100)message = data.decode("gbk")addr = writer.get_extra_info('peername')print(f"Received {message!r} from {addr!r}")if message == '-1':writer.write("将会结束!".encode("gbk"))else:writer.write(message.encode("gbk"))await writer.drain()if message == '-1':writer.close()break
async def main():server = await asyncio.start_server(handle_echo, '10.101.33.82', 8080)addr = server.sockets[0].getsockname()print(f'Serving on {addr}')async with server:await server.serve_forever()asyncio.run(main())

编码

# 编码,utf8
#3字节 1110xxxx 10xxxxxx 10xxxxxx   中文:"中"
# utf8--> 4e2d -》0100 1110 0010 1101
b'\xe4\xb8\xad'.decode('utf8') # “中“
# 与上边组 1110 0100 10111000 10101101 -》就是 e4b8ad

b’xxxxx’ xxxx 应该是字节数,例如ascii中的,或者是用16进制表示的汉字。

b’a’ == b’\x61’。

b’\e4\xb8\xad’ 按照utf8解码后就是‘中’。

图形界面

Python3 Tkinter Qt

wxwidgets,Kivy,Fltk

http://www.yayakq.cn/news/271020/

相关文章:

  • 无锡做网站中企动力企业管理咨询网站模板
  • 手机网站整站源码下载外贸管理网站模板
  • 服务好的公司网站建设与维护专业网站制作解决方案
  • 简单网站开发实例教程自助业务商城
  • 网站备案失效网站推广优化
  • 游戏网站网页模板html上海外贸服装尾货市场
  • 购物网站页面做交易网站
  • 石材网站源码河北建设厅网站上不去
  • 建设网站需要购买哪些济南网站建设小程序
  • 淘宝做网站短视频剪辑培训学校
  • ict网站建设环保网页设计代码
  • 网站加载模式微课网站建设项目
  • O2O网站建设需要多少钱做网站都需要什么人团
  • 无人高清影视在线观看广州排名网站关键词优化
  • 网站备案 人工审核网络建设合同范本
  • 做网站平台的公司有哪些谁用腾讯风铃做网站的
  • 成都网站建设平台湖北网站建设软件有哪些
  • 深圳横岗做网站建行网站会员是什么
  • 网站建站北京怎么做网页长图
  • 成都网站设计制作湛江网站建设公司哪家好
  • 网站怎么做自然优化网站机房建设解决方案
  • 门户网站建设的背景和意义什么东西可以做网站
  • vps lnmp wordpress聊城seo整站优化报价
  • 石家庄网站建设雨点牛网站网络营销平台
  • 汉邦未来网站开发有限公司佛山网站建设定制开发
  • 企业网站跟微信支付怎么做做全屏网站设计时容易犯的错
  • 广州网站建设建航ipv6网络设计案例
  • 电子商务网站建设期末试题wordpress divi教程
  • 什么是营销型手机网站建设安平做网站做推广电话
  • 湖州民生建设有限公司网站铜川做网站电话