Python
luanluan8888
这个作者很懒,什么都没留下…
展开
-
python GIL锁
Python的GIL锁python GIL锁python GIL锁C语言写的python解释器中存在全局解释器锁,由于全局解释器锁的存在,在同一时间内,python解释器只能运行一个线程的代码,这大大影响了python多线程的性能。(python注重的是安全性)多线程 ,在多线程的情况下,只有当线程获得了一个全局锁的时候,那么该线程的代码才能运行,而全局锁只有一个,所以使用pytho...原创 2018-10-25 19:16:34 · 415 阅读 · 0 评论 -
并发问题
1、如果是获取操作1)加缓存,提升响应时间(提升单台性能)2)加设备3)升级硬件(带宽更大、硬件CPU换更多的核,加内存,硬盘固态。)2、如果是修改数据(多人修改)1)变并行为串行(创一个队列,让请求都进队列里(慢,容易堵塞))2)加锁<1>悲观锁(认为自己在操作的时候,一定有人来改数据,所以要获取数据的操控权)常见的:用Redis,因为Redis本身单线程模型就可以抗...原创 2019-02-20 15:12:26 · 147 阅读 · 0 评论 -
解决token冲突
当在项目中多个模块都生成token时,缓存中的token可以保证在同一个时空内不重复(因为uuid不会重复。token = uuid.uuid4().hex)但是cache中的KEY是有可能重复的,因为id都是从1开始的。例如:同一个项目中,有后管理用户和影院用户,其user_id都是从1开始的生成,当user_id = cathe.get(token)时,有可能可以用影院用户的token执行后台...原创 2019-02-13 23:06:55 · 1711 阅读 · 0 评论 -
单例模式
单例模式:是设计模式的一种,对于一个类来说,不管如何实例化一个类,得到的对象都是一个id单例模式应用场景:– Python的logger就是一个单例模式,用以日志记录– Windows的资源管理器是一个单例模式– 线程池,数据库连接池等资源池一般也用单例模式网站计数器当每个实例都会占用资源,而且实例初始化会影响性能,这个时候就可以考虑使用单例模式,它给我们带来的好处是只有一个实例占用资...原创 2019-02-23 15:06:57 · 159 阅读 · 0 评论 -
MVC、MVT
MVT:MVT是一种软件架构思想,它的核心思想是解耦合,解的是数据操作、数据展示、业务逻辑处理之间的耦合,M是model,负责对数据的处理;T是Template,负责显示数据;V是Views,负责处理用户的请求,根据需求处理数据,处理完数据处理逻辑,处理完逻辑渲染页面。调用M和T请求响应,负责对数据的展示。...原创 2018-12-18 09:25:33 · 528 阅读 · 0 评论 -
python ---- 支付宝支付
支付开发:常见:支付宝:需要认证企业营业执照,个体工商户支付宝提供测试,测试完了,把企业执照一配置就可以用了 微信: 需要认证:认证一次200支付宝开发:去蚂蚁金服开放平台需求:做网页端和App端的支付宝支付进入支付宝开放平台沙箱环境:动态把内存、磁盘隔开,和线上环境隔开,环境与线上环境一样,但不会真是操作线上数据,类似于演示环境,避免生成垃圾数据按照说明文档进行注册...原创 2018-12-15 18:53:07 · 940 阅读 · 0 评论 -
Linux中的权限判定
Linux权限:用一个字段代表多种权限十位:第一位是类型后九位是权限每三位一组 rwx用户用户组其他组rwx:r — 4 100w — 2 010x — 1 001例如:5没有写权限,x + r = 5 所以没有写权限代码实现判断有没有写权限:即判断有没有 2r 100w 010x 001观察发现 rwx 每一位的权限是错开的,所...原创 2018-12-13 20:13:45 · 348 阅读 · 0 评论 -
Python中的数值交换
数值交换方法:方法一:a, b=b, a方法二:temp = aa = bb = temp方法三:a = a + bb = a - ba = a - b方法四(二进制): 异或、位运算a = a ^ b 不同为一,相同为0b = a ^ b a = 2 b = 3a = a ^ b a = 10 ^ 11 =...原创 2018-12-13 20:13:06 · 614 阅读 · 0 评论 -
Python 的MRO算法
MRO MEthod Resolution Order 方法解析顺序作用:在python中用于处理二义性问题的算法Python支持多继承,多继承的语言往往会遇到两类二义性的问题:1、有两个基类A、B,A和B都定义了方法f() ,C继承A和B,呢么调用C的f()方法是会出现不确定2、有一个基类A,定义了方法f(),B类和C类继承了A类,D类继承了B和C类,则此时D类不知道应该继承B类的f(...原创 2018-12-03 17:17:02 · 657 阅读 · 0 评论 -
Python —— 魔方方法
在Python中 方法名为:XXX() 就是魔方方法init() 初始化函数,用于完成默认的设置new() 返回一个对象的实例,init() 无返回值new()是一个类方法del() 析构方法,当对象被删除时,会自动调用当一个变量保存了对象的引用时,此时,该变量的引用计数会加一。当使用del删除变量指向的对象时,如果对象的引用计数不为1,比如是3,那么此时只会...原创 2018-11-21 11:08:25 · 1818 阅读 · 0 评论 -
Python —— method、classmethod、staticmethod
1、method:使用实例对象调用,对象方法可以用类名调用,但需要传入一个实例对象的参数2、classmethod:类方法一般使用类名调用。类方法可以使用类或实例对象调用,但cls永远代表类。(cls不是关键字,换成其他名称也可以,但尽量使用cls)3、staticmethod:静态方法一般使用类名调用。静态方法就是一个普通的函数,定义时有几个形参,调用时就传入几个实参。静态方法可以使用类或实...原创 2018-11-20 20:22:06 · 329 阅读 · 0 评论 -
Python —— 容器、可迭代对象、迭代器、生成器
1、容器(container)容器是一种把多个元素组织在一起的数据结构,容器中的元素可以逐个的迭代获取。可以用 in、not in等关键字判断元素是否包含在容器内。Python中,常见的容器对象:list,set,dict,tuple,str等2、可迭代对象(Iterable)可直接作用于for循环的对象,叫做可迭代对象常见可迭代对象:list,set,dict,tuple,str等...原创 2018-11-20 16:40:57 · 233 阅读 · 0 评论 -
Python —— 浅拷贝 、仿深拷贝 与 深拷贝
(1)浅拷贝:同一个内存地址,拥有不同的变量名称。(两个变量不管更改哪一个,更改的第几层,只要有一个变,就都变)(2)深拷贝:初始数据一致,内存地址不一致(两者相互独立,更改哪一个,或哪一个的哪一层,都与另一个无关)(3)仿深拷贝(第一层创建的是新的内存。从第二层开始,指向的是同一个内存地址,所以,对于第二层以及更深的层来说,保持一致性)即:对于仿深拷贝,第一层是独立的。从第二层开始,都...原创 2018-11-20 15:28:31 · 244 阅读 · 1 评论 -
cookie 和 session的区别
cookie:是放在header中进行传输的,cookie是服务器发给浏览器并让浏览器保存的,cookie是为了辨别用户身份、进行session跟踪而存储在用户本地终端上的数据seesion:是一种安全机制以Django为例,在Django中存储一个session 后,django会自动的生成session key,并将session key 与 数据自动的存储到django——sessi...原创 2018-10-25 19:38:22 · 128 阅读 · 0 评论 -
终端登录
1、单终端登录扩展token表维护token和用户id映射,用户id唯一2、多终端登录扩展token表维护token和用户id映射,用户id不唯一,是外键cache就是多终端登录3、限制多终端个数扩展token表维护token和用户id映射,用户id不唯一,是外键查询外键对应的token的个数4、扩展需求,爱奇艺VIP同时允许多个设备登录,最多登录10个设备用户表(包含用...原创 2019-02-20 22:23:50 · 832 阅读 · 0 评论