摘要:
今天之所以这么早结束,主要是因为自己脑子不够用了,发现最近的定义有点多,完全搞不清楚了,打算早点睡觉,今天的内容估计要引用很多别人的部分了。 看到题目的四个东东是不是惊呆了,我也是惊呆了,同时脑子还跟不上。 同步(synchronous) IO和异步(asynchronous) IO,阻塞(bloc 阅读全文
摘要:
今天的主要内容是事件驱动模型和IO模型的一些前序知识,可能主要是文字,写的好枯燥,没有代码果然心里慌,所以自己复习了一下之前用re模块写的计算器。 昨天学习了协程,留下了一个问题,当我们遇到io操作的时候会切换进程,但是什么时候切换回来呢,这是一个问题。。。 传统的编程是如下线性模式的: 开始 >代 阅读全文
摘要:
关于协程,最早出现在处理io密集型和计算密集型问题中,出现过多进程加协程的处理模式,首先关于协程,其本质就是一个微线程。 先说一下之前我们学到的线程和进程,这两者有一个非常明显和共同的特点,都属于抢占式程序,之间的切换是完全不受我们控制的,执行切换过程是属于操作系统级别的操作,所以与之对应,协程就出 阅读全文
摘要:
今天开始了进程池的内容,说的直白点就是去取一个合适的中间值,我们再编写代码的时候为了加快处理速度我们可以使用多进程,因为多进程属于并行,肯定会使运行速度更快,但是创建进程就需要独立的内存空间,这又是一项非常耗费资源的事情,为了保证运行速度,又可以使进程不多不少,所以才引入了进程池的概念。 先说一下今 阅读全文
摘要:
昨天讲到了Python为了弥补GIL造成的无法充分利用多核电脑增强运算能力的bug,引入了multprocessing模块,通过该模块内的Process类的实例化过程进行进行创建新的进程,从而越过了GIL(准确的说是建立了多个GIL)进行运算,使在进行附在运算的时候能够更为充分运用计算机的多核处理器 阅读全文
摘要:
昨天的生产者消费者模型其实自己没有怎么认真听,因为前几天上班太忙消耗太大,导致昨晚太困,多次电脑砸脸,所以今天再详细说一下生产者消费者模型。 主要是利用queue来实现一个生产者和消费者之前的联通,其实在之前曾经利用过列表来实现,但是明显那种方式非常的不合适,生产者和消费者之间的联系太强了,基本都是 阅读全文
摘要:
今天一开始就说列表是一个不安全的数据结构,之前也是遇到过类似的问题,列表不受局部变量还是全局变量的影响,你用了就变了,就算是局部变量也回不到之前了,但是今天这里说到的不安全数据结构主要是体现在多线程过程的使用中,先展示一下到底怎么不安全吧。 import threading,time li=[1,2 阅读全文
摘要:
今天三个部分的知识、递归锁(解决同步锁造成的锁死现象)、同步对象(类似一个锁,使两个线程之间进行同步)、信号量(控制线程数量的一个锁),悄悄的说一下,算上昨天的同步锁,虽然已经讲了四种锁了,但是据说总共是有五种锁的,最后一个我还不知道是个啥。 一、递归锁 昨天引入了同步锁的概念,但是因为同步锁的引入 阅读全文
摘要:
今天首先是继续看了一下关于GIL的问题,其实昨天验证后存在的问题本身之外,还有一个更加令人震惊的问题,为啥listen和game在使用了多线程之后时间缩短了,而之后的add和cheng的用了多线程运算时间却反而增多了,下面我就慢慢叙来: 首先是我们常处理的任务分为两种类型: 1.IO密集型(存在大量 阅读全文
摘要:
昨天其实已经看了部分setDaemon的内容了,但是其实内容并不全。 首先,先补充一下昨天没有说完的知识内容吧 import time import threading def listen(num): print('listen is coming at %s'%time.ctime()) tim 阅读全文