自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

变成习惯

记下知识,记录自己

  • 博客(11)
  • 收藏
  • 关注

原创 mysql详解

mysql命令mysql登录参数:-D, --database 指定数据库--delimiter 指定分隔符-h, --host 指定服务器地址-p, --password 指定密码-P, --port 指定端口--prompt ...

2020-02-29 19:07:16 494

原创 mycat部署

mycat介绍mycat是阿里开源的一个分布式数据库中间层。作用:实现数据库的读写分离支持读负载均衡、后端mysql高可用数据库垂直拆分、水平拆分应用场景:需要读写分离需要分库分表多租户数据统计系统HBASE替代同样方式查询多种数据库关键特性:支持SQL92标准支持mysql集群支持jdbc连接数据库支持nosql数据库支...

2020-02-25 18:37:11 1866

原创 48. 在类中定义装饰器

要求:实现一个能将函数调用信息记录到日志的装饰器:把每次函数的调用时间、执行时间、调用次数写入日志;可以对被装饰函数分组,调用信息记录到不同日志;动态修改参数,比如日志格式;动态打开关闭日志输出功能。@call_info(arg1, arg2, arg3,...)def func(a, b): ...解决方案:为了让装饰器在使用上更加灵活,可以把类的实例方法作为装饰...

2020-02-18 18:38:48 1187

原创 47. 实现属性可修改的函数装饰器

在某项目中,程序运行效率较差,为分析程序内哪些函数执行时间开销较大,我们实现了一个带timeout参数的函数装饰器。装饰功能如下:@warn_timeout(1.5)def func(a,b): ...要求:统计被装饰函数单次调用运行时间;时间大于参数timeout的,将此次函数调用记录到log日志中;运行时可修稿timeout的值。解决方案:为包裹函数增...

2020-02-18 18:37:57 174

原创 46. 定义带参数的装饰器

要求:实现一个装饰器,它用来检查被装饰函数的参数类型。装饰器可以通过参数指明函数参数的类型,调用时如果检测出类型不匹配则抛出异常。@type_assert(str, int, int)def f(a, b, c): ... @type_assert(y=list)def g(x, y): ...解决方案:提取函数签名:inspect.signature()函数...

2020-02-14 19:50:02 316

原创 45. 为被装饰函数保存元数据

在函数对象中保存着一些函数的元数据,例如:__name__ 函数的名字__doc__ 函数文档字符串__module__ 函数所属模块名__dict__ 属性字典__default__ 默认参数元组...在使用装饰器后,再访问上面这些属性时,看到的是内部包裹函数的元数据,原来函数的元数据便丢失了。要求:为被装饰函数保存...

2020-02-14 19:49:11 184

原创 44. 使用函数装饰器

某些时候我们想问多个函数统一添加某种功能,比如计时统计、记录日志、缓存运算结果等等。我们不想在每个函数内添加完全相同的代码,如何更好的达成目的呢?要求:不在每个函数内添加完全相同的代码的前提下实现功能。解决方案:定义装饰器函数,用它生成一个在原函数基础上添加了新功能的函数,替代原函数。对于装饰器decorator:Python的装饰器decorator本质上是一个高阶函数,它接收一...

2020-02-14 19:48:20 287

原创 43. 使用多进程

由于Python中全局解释器锁(GIL)的存在,在任意时刻只允许一个线程在解释器中运行,因此Python的多线程不适合处理CPU密集型的任务。要求:想要处理CPU密集型的任务,可以使用多进程模型。解决方案:使用标准库中multiprocessing.Process类,它可以确定子进程执行任务。操作接口、进程间通信、进程加同步等都与threading.Thread类类似。对于multip...

2020-02-08 14:02:41 258

原创 42. 使用线程池

前面实现了一个多线程的web视频监控服务器,由于服务器资源有限(CPU,内存,带宽),需要对请求连接数(线程数)做限制,避免因资源耗尽而瘫痪。要求:使用线程池,替代原来的每次请求创建线程。解决方案:使用标准库汇总concurrent.futures下的ThreadPoolExecutor类,对象的submit()和map()方法可以用来启动线程池中的线程执行任务。对于ThreadPoo...

2020-02-08 14:02:14 281

原创 41. 使用线程本地数据

例如,我们实现了一个web视频监控服务器,服务器端采集摄像头数据,客户端使用浏览器通过http请求接收数据。服务器使用推送的方式(multipart/x-mixed-replace)一直使用一个tcp连接向客户端传递数据。这种方式将持续占用一个线程,导致单线程服务器无法处理多客户端请求。要求:改写程序,在每个线程中处理一个客户端请求,支持多客户端访问。解决方案:threading.local...

2020-02-04 10:38:40 480

原创 40. 在线程间进行事件通知

在之前通过使用多个DownloadThread线程进行下载(I/O)及使用一个ConvertThread线程进行转换(CPU),我们达到了多线程下载csv数据并转换为xml文件的目的。但现在有额外的要求:实现一个打包线程TarThread,将转换出的xml文件压缩打包。例如转换线程每生产出5个xml文件,就通知打包线程将它们打包成一个xxx.tgz文件,并删除xml文件。打包完成后,打包线程反过...

2020-02-04 10:37:01 284

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除