深入理解py
Davecurry939
这个作者很懒,什么都没留下…
展开
-
编写python建议(一)
编写python建议(一) 记录一些适用于自己开发时的一些经验 常量集中到一个文件中 命名大写,用下划线连接各个单词 通过自定义的类实现常量功能,如下例子: class _const: class ConstError(TypeError):pass class ConstCaseError(ConstError):pass def __setattr__(se...原创 2020-01-14 15:54:48 · 110 阅读 · 0 评论 -
python线程池
python线程池 在编码需要多线程的时候,我们并不希望多个线程一次性全都开始,而是我们能控制线程的数量,能在主线程中获取某一个线程的状态或者某一个任务的状态和他的返回值,还能在某一个线程完成时可以在主线程得到消息。这个时候来介绍下futures包。 future包有个优点,它可以让多线程和多进程编码接口一致。它还有个ThreadPoolExecutor类,一个线程池管理包工具类。 我们写一个do...原创 2019-10-18 11:06:22 · 236 阅读 · 0 评论 -
GIL锁
GIL锁 什么是gil gil全称叫 global interpreter lock (全局解释器锁) 我们在python中的一个线程是对应于c语言中的一个线程。可能当初在设计python时出于便利,简单,在进行多线程编程的时候,他会在解释器上加一把锁,也就是它允许同一个时刻只有一个线程运行在一个cpu上(执行字节码 详情可以用dis模块),当然它是为了保证线程之间在某种程度有了一定的安全性,但是...原创 2019-08-27 11:57:16 · 171 阅读 · 0 评论 -
python多线程编程
多线程编程 我们都知道,cpu调度和切换的最小单位是线程,进程是系统进行资源分配和调度的基本单位。因为进程对cpu的消耗较大,于是乎出现了线程,线程实际上是依赖于进程,一个进程下有多个线程。在io操作为主的情况下,多线程和多进程性能差别不大,线程的调度比进程的调度可以说是更轻量级的。 1.通过Thread类实例化 举一个不是很恰当的例子来帮助理解。。 我们习惯于吃饭有配汤,所以在做饭的时候也会做汤...原创 2019-09-02 22:07:10 · 111 阅读 · 0 评论 -
属性描述符
属性描述符 引子 在学django,flask的时候,需要定义模型类,也就是数据库的时候,我有些疑惑,为什么要这么写? 我拿出一个普通的项目内的模型类,大概是这个样子 from django.db import models class BaseModel(models.Model): created_at = models.DateTimeField(auto_now_add=Tru...原创 2019-09-04 21:12:22 · 114 阅读 · 0 评论 -
python 多线程 锁Lock
python 多线程 锁Lock 在上次讲gil锁的时候(地址https://blog.csdn.net/weixin_41978134/article/details/100097159 ), 有讲到gil锁也会有释放的时候,就会导致数据的错误读存取,10万次左右可能不会有影响,然而量级大上去,结果就不再是零了。那么如何解决这种问题呢? 这里引入Lock from threading impor...原创 2019-09-27 09:17:58 · 177 阅读 · 0 评论