07 2015 档案

摘要:#I/O事件最近在研究tornado和gevent,里面涉及了非阻塞I/O。在了解非阻塞I/O之前,需要先了解I/O事件我们知道,内核有缓冲区。假设有两个进程A,B,进程B想读进程A写入的东西(即进程A做写操作,B做读操作)。进程A需要先写入到**内核缓冲区**中,然后B从内核缓冲区中读取,如图: ... 阅读全文
posted @ 2015-07-24 11:25 Eric_Nirvana 阅读(4515) 评论(1) 推荐(1) 编辑
摘要:众所周知,python中的`yield`有这样的用法:```pythondef test(alist): for i in alist: yield i```这样,这个`test`函数就变成了一个生成器,当每次调用的时候,就会自动返回当前值。比如:```pythona = [1,2,3... 阅读全文
posted @ 2015-07-23 22:58 Eric_Nirvana 阅读(420) 评论(0) 推荐(0) 编辑
摘要:按照说明直接使用`pip install scrapy`会有两个问题:1. fatal error: ‘ffi.h’ file not found2. fatal error: ‘libxml/xmlversion.h’ file not found这两个文件都是存在的,可是却显示不存在。网上查找后... 阅读全文
posted @ 2015-07-21 10:58 Eric_Nirvana 阅读(329) 评论(0) 推荐(0) 编辑
摘要:##Same Tree ###题目给予两棵二叉树,判断这两棵树是否相等(即各节点的值都一样)###解题思路分别遍历两棵二叉树,并用列表分别存储这两棵树的节点的值,比较这两个列表就可以了```pythonclass Solution: # @param {TreeNode} p # @pa... 阅读全文
posted @ 2015-07-13 12:59 Eric_Nirvana 阅读(311) 评论(0) 推荐(0) 编辑
摘要:##Longest Common Prefix ###题目给予一个列表,元素为字符串,写一个程序找出最长公共前缀###解题思路先比较两个字符串,如果第一个字符不一样,则返回空值,比较完成后,用这个公共字符串和下一个元素继续比较,以此类推```pythonclass Solution: # @p... 阅读全文
posted @ 2015-07-11 10:30 Eric_Nirvana 阅读(150) 评论(0) 推荐(0) 编辑
摘要:从题目名字就可以看出这两道题是相似的,219是217的加强版##217:Contains Duplicate###题目给予一个数组,判断是否有重复的元素。如果有就返回True,没有就返回False。以下是我第一次想到的方法###解题思路遍历这个数组,建立一个字典,存储每个不同的数字的出现次数。如果某... 阅读全文
posted @ 2015-07-11 10:28 Eric_Nirvana 阅读(245) 评论(0) 推荐(0) 编辑
摘要:##Path Sum###题目给予一个二叉树,和一个值su,寻找是否有一个从根节点到叶节点的和为su,有则返回True,没有为False。比如: 5 / \ 4 8 / / \ 11... 阅读全文
posted @ 2015-07-11 10:26 Eric_Nirvana 阅读(162) 评论(0) 推荐(0) 编辑
摘要:raspberry部分使用入门~ 阅读全文
posted @ 2015-07-07 23:04 Eric_Nirvana 阅读(2730) 评论(0) 推荐(0) 编辑
摘要:在使用gevent框架的时候,我们经常会使用`join`函数,如下:```pythondef test1(id): print(id) gevent.sleep(0) print(id, 'is done!')t = gevent.spawn(test1, 't')t1 = gev... 阅读全文
posted @ 2015-07-04 18:28 Eric_Nirvana 阅读(1598) 评论(0) 推荐(0) 编辑
摘要:gevent是一个异步I/O框架,当遇到I/O操作的时候,会自动切换任务,从而能异步地完成I/O操作但是在测试的情况下,可以使用`sleep`函数来让gevent进行任务切换。示例如下:```pythonimport geventdef test(id): print('Test %s is ... 阅读全文
posted @ 2015-07-01 21:04 Eric_Nirvana 阅读(1968) 评论(0) 推荐(1) 编辑
摘要:在gevent的源码中,经常能看到switch函数。而不同的类中的switch函数有不同的用法##1. greenlet的switch函数这里面的greenlet**是greenlet库中的greenlet类**,它**是gevent中的Greenlet类的基类**(即Greenlet类是在gree... 阅读全文
posted @ 2015-07-01 21:02 Eric_Nirvana 阅读(1574) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示