协程与yield
协程,又称微线程或纤程,是一种比进程和线程更加轻量级的执行方式,现代编程语言中也有多种不同的实现方式。那么,协程究竟有什么特点,它又是如何运作的呢?协程与yield进程和线程之间的关系,我在《线程和进程的比较之我见》中做过简单比较。…
协程,又称微线程或纤程,是一种比进程和线程更加轻量级的执行方式,现代编程语言中也有多种不同的实现方式。那么,协程究竟有什么特点,它又是如何运作的呢?协程与yield进程和线程之间的关系,我在《线程和进程的比较之我见》中做过简单比较。…
问题是在Python中进行循环的时候产生的。熟悉Python的都知道,它没有类似其它语言中的传统for循环,通常通过for in的方式进行循环遍历。最典型的应用就是通过range函数产生一个列表,然后用for in进行操作,如下:#!/…
Socket的英文原义是“孔”或“插座”。作为BSD UNIX的进程通信机制,取后一种意思,通常也称作“套接字”,用于描述IP地址和端口,是一个通信链路的句柄。在Internet上的主机一般运行多个服务软件,同时提供多种服务。…
Linux中进程的通信方式有信号,管道,共享内存,消息队列socket等。其中管道是*nix系统进程间通信的最古老形式,所有*nix都提供这种通信方式。管道是一种半双工的通信机制,也就是说,它只能一端用来读,另外一端用来写;另外,管道只能用…
这段时间在研究 Linux 中用户登录和 Shell 执行程序的原理。我们知道,Shell 命令分为内部命令和外部命令。内部命令有诸如 cd、history、exit、echo 等,常见的外部命令有 ls、ping、netstat 等。…
在前面一篇《用Python给Linux编写守护进程》的文章中,讲到了如何利用 Python 给 Linux 编写一个守护进程。守护进程不依赖用户终端,所以程序输出的信息用户是察觉不到的。但是在实际应用中,我们又经常需要记录一些信息,例如…
在上一篇文章中,我们讲了如何在 Linux 上用 Python 编写一个守护进程。主要原理是利用 Linux 的 fork 函数创建一个进程,然后退出父进程,生成的子进程就会成为一个守护进程。细心观察的可能会发现,这个守护进程的运行身份,…
在面向对象的编程中,经常会遇到对象克隆的问题。如果不了解深复制和浅复制(也就是深拷贝和浅拷贝)的概念,编写程序的时候就可能出现一些比较难发现的问题。我们知道,对象可以看成是由一系列 key、value 组成的,不同编程语言对于数据类型的划分…
在程序猿的世界中,线程和进程是一个非常重要的概念。很多人经常弄不清楚线程和进程到底是什么,以及它们之间有什么区别。本文就试图用比较容易理解的方式来解释一下线程和进程。首先来看一下概念。进程(英语:process),…
在我的插件 Super Static Cache 使用过程中,经常会有人问这样的问题:怎么样让 Super Static Cache 插件支持我的 HTML 压缩插件?本文这里不讨论具体的技术实现,主要分析一下,现在的网站有没有必要再进行…