随笔分类 -  Python

摘要:1.JsonResponse 是HttpResponse的一个子类(有很多的子类),用于帮助创建JSON编码的响应。他从父类继承大部分行为,并具有以下的不同点: 它的默认Content-Type头部设置为application/json。 (1)它的第一个参数 data,应该为一个 dict 实例。 阅读全文
posted @ 2019-04-11 15:11 あなたの相棒 编辑
摘要:Django模板系统 官方文档 常用语法 只需要记两种特殊符号: {{ }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}。 变量 在Django的模板语言中按此语法使用:{{ 变量名 }}。 当模版引擎遇到一个变量,它将计算这个变量,然后用结果替换掉它本身。 变量的命名包括任何字母数字 阅读全文
posted @ 2019-04-10 16:18 あなたの相棒 编辑
摘要:定义: 在并发编程中使用生产者和消费者模式能够解决绝大多数并发问题。该模式通过平衡生产线程和消费线程的工作能力来提高程序的整体处理数据的速度。 为什么要使用生产者和消费者模式 在线程世界里,生产者就是生产数据的线程,消费者就是消费数据的线程。在多线程开发当中,如果生产者处理速度很快,而消费者处理速度 阅读全文
posted @ 2019-04-04 10:32 あなたの相棒 编辑
摘要:Queue Queue是python标准库中的线程安全的队列(FIFO)实现,提供了一个适用于多线程编程的先进先出的数据结构,即队列,用来在生产者和消费者线程之间的信息传递 基本FIFO队列 class Queue.Queue(maxsize=0) FIFO即First in First Out,先 阅读全文
posted @ 2019-04-04 09:37 あなたの相棒 编辑
摘要:之前文章对python中进程池的原理、数据流以及应用从代码角度做了简单的剖析,现在让我们回头看看标准库中对进程池的实现都有哪些值得我们学习的地方。我们知道,进程池内部由多个线程互相协作,向客户端提供可靠的服务,那么这些线程之间是怎样做到数据共享与同步的呢?在客户端使用apply/map函数向进程池分 阅读全文
posted @ 2019-04-03 16:27 あなたの相棒 编辑
摘要:之前文章中介绍了python中multiprocessing模块中自带的进程池Pool,并对进程池中的数据结构和各个线程之间的合作关系进行了简单分析,这节来看下客户端如何对向进程池分配任务,并获取结果的。 我们知道,当进程池中任务队列非空时,才会触发worker进程去工作,那么如何向进程池中的任务队 阅读全文
posted @ 2019-04-03 16:26 あなたの相棒 编辑
摘要:python中两个常用来处理进程的模块分别是subprocess和multiprocessing,其中subprocess通常用于执行外部程序,比如一些第三方应用程序,而不是Python程序。如果需要实现调用外部程序的功能,python的psutil模块是更好的选择,它不仅支持subprocess提 阅读全文
posted @ 2019-04-03 16:25 あなたの相棒 编辑
摘要:Python实现多进程间通信的方式有很多种,例如队列,管道等。但是这些方式只适用于多个进程都是源于同一个父进程的情况。如果多个进程不是源于同一个父进程,只能用共享内存,信号量等方式,但是这些方式对于复杂的数据结构,例如Queue,dict,list等,使用起来比较麻烦,不够灵活。Manager是一种 阅读全文
posted @ 2019-04-02 17:38 あなたの相棒 阅读(174) 评论(0) 推荐(0) 编辑
摘要:1 2 3 4 5 6 7 8 mutex = threading.Lock() #锁的使用 #创建锁 mutex = threading.Lock() #锁定 mutex.acquire([timeout]) #释放 mutex.release() 1 2 3 4 5 6 7 8 mutex =  阅读全文
posted @ 2019-04-02 14:23 あなたの相棒 编辑
摘要:一、全局解释器锁(GIL) 1、什么是全局解释器锁 在同一个进程中只要有一个线程获取了全局解释器(cpu)的使用权限,那么其他的线程就必须等待该线程的全局解释器(cpu)使 用权消失后才能使用全局解释器(cpu),即时多个线程直接不会相互影响在同一个进程下也只有一个线程使用cpu,这样的机制称为全局 阅读全文
posted @ 2019-04-02 13:56 あなたの相棒 编辑
摘要:semaphore是一个内置的计数器 计数器不能小于0,当计数器为0时,acquire()将阻塞线程直到其他线程调用release()。来看下面的代码: 执行结果: 可以看到,程序会在很短的时间内生成20个线程来打印一句话。 如果在主机执行IO密集型任务的时候再执行这种类型的程序时,计算机就有很大可 阅读全文
posted @ 2019-04-01 17:43 あなたの相棒 编辑
摘要:目录: multiprocessing模块 如果你打算编写多进程的服务程序,Unix/Linux无疑是正确的选择。由于Windows没有fork调用,难道在Windows上无法用Python编写多进程的程序?由于Python是跨平台的,自然也应该提供一个跨平台的多进程支持。multiprocessi 阅读全文
posted @ 2019-03-28 13:53 あなたの相棒 编辑
摘要:利用map()函数,可以把一个 list 转换为另一个 list,只需要传入转换函数。 2、当seq多于一个时,map可以并行(注意是并行)地对每个seq执行如下图所示的过程: l2=map(lambda x,y:x**y,[1,2,3],[1,2,3])for i in l2: print(i)l 阅读全文
posted @ 2019-03-28 13:39 あなたの相棒 编辑
摘要:本节内容 一、前言 1. 现实需求 每种编程语言都有各自的数据类型,其中面向对象的编程语言还允许开发者自定义数据类型(如:自定义类),Python也是一样。很多时候我们会有这样的需求: 把内存中的各种数据类型的数据通过网络传送给其它机器或客户端; 把内存中的各种数据类型的数据保存到本地磁盘持久化; 阅读全文
posted @ 2019-03-22 11:03 あなたの相棒 编辑
摘要:本节内容 正则表达式简介 正则表达式中的字符 元字符详解 常用正则表达式实例 正则表达式的匹配过程 正则表达式中的标志位-flag 参考资料 需要提前说明的是: 正则表达式的语法是由正则表达式引擎决定的(目前主流的正则引擎分为3类:DFA、传统型NFA 和 POSIX NFA),不同编程语言或应用程 阅读全文
posted @ 2019-03-22 10:55 あなたの相棒 编辑
摘要:本节内容 一、日志相关概念 日志是一种可以追踪某些软件运行时所发生事件的方法。软件开发人员可以向他们的代码中调用日志记录相关的方法来表明发生了某些事情。一个事件可以用一个可包含可选变量数据的消息来描述。此外,事件也有重要性的概念,这个重要性也可以被称为严重性级别(level)。 1.日志的作用 通过 阅读全文
posted @ 2019-03-22 10:47 あなたの相棒 编辑
摘要:可以把实例对象用类似函数的形式表示,进一步模糊了函数和对象之间的概念 阅读全文
posted @ 2019-03-21 17:21 あなたの相棒 编辑
摘要:简介: 用于加密相关的操作,代替了md5模块和sha模块,主要提供SHA1,SHA224,SHA256,SHA384,SHA512,MD5算法。在python3中已经废弃了md5和sha模块,简单说明下md5和sha的使用。 什么是摘要算法呢? 摘要算法又称为哈希算法,散列算法。它通过一个函数,把任 阅读全文
posted @ 2019-03-21 17:18 あなたの相棒 编辑
摘要:__new__() 是在新式类中新出现的方法,它作用在构造方法建造实例之前,可以这么理解,在 Python 中存在于类里面的构造方法 __init__() 负责将类的实例化,而在 __init__() 启动之前,__new__() 决定是否要使用该 __init__() 方法,因为__new__() 阅读全文
posted @ 2019-03-21 17:15 あなたの相棒 编辑
摘要:初学编程的小伙伴都会对于深浅拷贝的用法有些疑问,今天我们就结合python变量存储的特性从内存的角度来谈一谈赋值和深浅拷贝~~~ 预备知识一——python的变量及其存储 在详细的了解python中赋值、copy和deepcopy之前,我们还是要花一点时间来了解一下python内存中变量的存储情况。 阅读全文
posted @ 2019-03-21 17:06 あなたの相棒 编辑