摘要:
这个还是有点意思,两个都是有返回的意思,但是区别在哪里呢?1.return 会销毁函数的局部变量,下次调用的时候又会产生新的值2.yield 当退出函数的时候,变量人然存在,函数下次调用的时候变量仍然存在。很好玩吧,那我就很好奇了,这个yield是generater的简便方法 ,所以generater有什么神奇的地方呢?# Using the generator pattern (an iterable)class firstn(object): def __init__(self, n): self.n = n self.num, self.nums = 0... 阅读全文
摘要:
进程、线程和协程的理解进程、线程和协程之间的关系和区别也困扰我一阵子了,最近有一些心得,写一下。进程拥有自己独立的堆和栈,既不共享堆,亦不共享栈,进程由操作系统调度。线程拥有自己独立的栈和共享的堆,共享堆,不共享栈,线程亦由操作系统调度(标准线程是的)。协程和线程一样共享堆,不共享栈,协程由程序员在协程的代码里显示调度。进程和其他两个的区别还是很明显的。协程和线程的区别是:协程避免了无意义的调度,由此可以提高性能,但也因此,程序员必须自己承担调度的责任,同时,协程也失去了标准线程使用多CPU的能力。打个比方吧,假设有一个操作系统,是单核的,系统上没有其他的程序需要运行,有两个线程 A 和 B 阅读全文