学习之路
Swordmaaan
这个作者很懒,什么都没留下…
展开
-
Python 线程和进程
没有深入学习过操作系统,说一下我对线程,进程的粗浅理解。首先要说明并发和并行这两个概念。并发:在一个宏观的时间段上,多个程序同时运行。也就是说只要任务切换得够快,看起来多个任务就是在同时执行。单核CPU也可以实现并发,调度器把CPU分为一段一段的运行片让多个程序交替执行,这样看起来就好像同时执行一样。并行:在一个微观的时间点上,多个程序同时运行。并行至少需要多核CPU才能实现,对于一个...原创 2019-05-24 14:42:15 · 118 阅读 · 0 评论 -
Python 可迭代对象,迭代器和生成器
凭脑海中的印象回忆这三个概念:可迭代对象凡是实现了可迭代协议 __iter__的对象都是可迭代对象(通常是序列型的对象),实现了__iter__协议的方法都可以通过for ... in ...语句进行遍历。但是是否一定要实现__iter__才能用迭代呢?并不是,因为python太智能了。。。如果对一个类实现了一个__getitem__方法,python会在for遍历的时候查找有没有__i...原创 2019-05-23 21:32:11 · 101 阅读 · 0 评论 -
Python 中的 else
Python中我们最常使用的else是用在if…else组合中的,在if …为False时执行else block。与if /else语义差别很大的还有一些特殊的else:1.for/while 的 elsefor/while ...else...else block 在循环或迭代正常退出时才执行(与正常退出相对的是while循环或for迭代被break终止)2.try / exc...转载 2019-05-23 20:05:22 · 219 阅读 · 0 评论 -
Python 中的上下文管理器
Python 中的上下文管理器with expression [as target]: with-body上下文管理器是为with 语句而生,要想使用with 语句,必须实现上下文管理器协议:__enter__和__exit__,只要实现了这两个特殊方法,就可以使用with语句。__enter__通常执行一些初始化操作,并且该函数的返回值会赋值给可选的 as target 中的t...原创 2019-05-23 19:57:23 · 1023 阅读 · 0 评论 -
python 中的装饰器和闭包
有时候看了不少书、文档、博客,有的知识我以为自己已经掌握了,但让我用自己的话讲出来却全无思路,只能吐出几个关键概念,所看的东西并没有真正形成体系。学习编程的过程中我相信这样一种检验标准——能讲得出才是真的懂。我想要达到的标准是能用自己的话把一个知识点的整个流程向一个不懂的人讲明白,所以平时如果有片段化的空闲时间,我都会在脑海里,或者对着空气向一个“不存在的人”讲我最近学习的一些知识来检验是否理解...原创 2019-05-23 19:07:01 · 167 阅读 · 0 评论 -
对称加密和非对称加密,证书体系
对称加密通信几方使用相同的密钥,发送者使用该密钥加密数据,接收者通过同样的密钥解密数据。缺点是在通信前双方需要持有同一个密钥,在密钥同步的过程中可能发生泄漏。非对称加密每个通信方都拥有一对公钥和私钥,公钥是对外界公开的,私钥仅通信方自己知道,二者是对应的,使用公钥加密的信息,必须是对应的私钥才能解密,反之使用私钥加密的信息,必须是对应的公钥才能解密。也就是说,通信的前提是双方持有对方的公钥即...原创 2019-05-24 21:23:34 · 369 阅读 · 0 评论 -
Session 和 Cookie
由于HTTP访问是无状态的,所以服务器无法区分哪些请求是来自于同一个用户,让一个用户每次访问都需要身份验证是很蠢的,为了解决这一问题,一种客户端的解决方案是cookie,另有一种服务端的解决方案是session,他们都是为了让服务器知道“上一次是你,这一次又是你”。Cookie用户第一次登陆成功后,服务器在响应报文的响应头中会增加一个Set-cookie:cookie字段,cookie中一般保...原创 2019-05-24 20:10:40 · 117 阅读 · 0 评论 -
Python 线程间的同步机制3: Event, Timer, Barrier
Event首先有一个全局的Event对象: e = threading.Event()调用e.wait()时,如果内置的标志为True,则直接返回True,如果内置的标志为False,则挂起,直到内置标志变为True,或直到time out。某个号令线程可以通过e.set()把内置标志设为True,e.clear把标志设为False。就想过十字路口红绿灯一样,所有车辆在路口前都要执行e.w...原创 2019-05-24 19:15:30 · 198 阅读 · 0 评论 -
Python 线程间的同步机制2:Rlock 和 Condition
Rlock我们前面说过了Lock,python的threading库中还提供了一个可重入锁Rlock。还记得吗,对于Lock,我们不能说Lock被某个线程持有,或Lock属于某个线程,因为一个线程使用acquire使锁进入locked态,任何线程都可以调用release把锁“打开”——恢复unlocked态。这里的Rlock相比于Lock,增加了两个特性。1.Rlock锁是被某个线程持有的...原创 2019-05-24 18:43:02 · 215 阅读 · 0 评论 -
Python 线程间的同步机制1:Lock锁和Semaphore信号量
1.信号量:Semaphore信号量的本质是一个计数器,某个线程调用信号量的.acquire()方法时,如果当前计数器>0,则计数器-1,某个线程调用.release()方法时,计数器+1。acquire(blocking = True,timeout=None)如果当前计数器不为0,acquire()返回True,如果当前计数器值为0,后续的所有acquire()都会被阻塞。设置b...原创 2019-05-24 16:41:52 · 254 阅读 · 0 评论 -
Python中的生成器和协程,yield和yield from
生成器实现协程功能一个简单的实现协程功能的生成器函数def coro(): n = 0 while n < 100: print('I love u.') ask = 'Do u love me?' answer = yield ask print('You answer is...', answer) ...原创 2019-05-23 23:57:52 · 256 阅读 · 0 评论