易截截图软件、单文件、免安装、纯绿色、仅160KB

Python多线程知识点


知识点
1.线程是“轻量级”进程,因为相较于进程的创建和管理,操作系统通常会用较少的资源来创建和管理线程。操作系统要为新建的进程分配单独的内在空间和数据;相反,程序中的线程在相同的内存空间中执行,并共享许多相同的资源。多线程程序在结内存的使用效率要优于多进程程序。
2.python提供了完整的多线程处理类,如果操作系统支持多线程,就可用python的threading模块创建多线程应用程序。程序员可以在一个应用程序中包含多个执行线程,而且每个线程都表明程序中的一部份要与其他线程并发执行。许多应用程序都可获益于多线程编程。Web浏览器下载大文件时(比如音乐或视频),用户希望立即可欣赏音乐或观看视频,这样就可以让一个线程下载,另一个线程播放已经下载的一部分。从而实现多个操作并发执行。
性能提示
1.单线程程序问题在于要在结束费时较长的操作后,才能开始其它操作。而在多线程程序中,线程可共享一个或多个处理器,使多个任务并行执行。
2.解释器开始执行程序时,“主”线程开始执行。每个线程都可创建和启动其它线程。如果程序包含多个正在运行的线程,它们将依据指定的间隔时间(称为一个quantum),依次进入和离开解释器。Python的“全局解释器锁”(Global Interpreter Lock,GIL)保证解释器在任何时刻只运行一个线程。GIL每次可用时,都会有单个线程包含它,然后,线程进入解释器,关在该线程的quantum时间段中执行它。一旦quantum到期,线程就离开解释器,同时释放GIL。
3.在任何时刻,线程都处于某种线程状态。新线程将从“born”状态开始它的生命周期。线程保持这个状态,直到程序调用线程的start方法,这会使线程进入“ready”状态,有时也称为“runnable”状态。另外,控制权会立即返回至调用线程(调用者)。之后,调用者可与已启动的线程以及程序中的其他任何线程并发执行。当“ready”线程首次获得GIL(Global Interpreter Lock,全局解释器锁),会执行它的run方法,成为一人“running”线程。run方法会一直执行,直到线程引发一个未处理的异常,或者线程离开解释器。running线程离开解释器时,线程会记住它的当前执行位置。以后线程重新进入解释器,线程会从该位置继续执行。线程惟一能获得GIL的状态就是“running”状态。
4.run方法返回或终止(如遇到一个未进行捕捉的异常),就会进入“dead”状态。解释器


相关文档:

python 好东东

ipython 如果没有用装, 那就赶紧装上, 这个东西比起python自己带的那个交互界面要好用很多
shutil 类似于shell的一些接口, 比如 cp, mv等等
subprocess 调用子进程
optparse 解析命令行参数的, 用它来应付命令行参数, 简洁, 清晰
sqlite3 数据库, 进程级的数据库, 很酷, 甚至可以把这个数据库建在内存里. http://www.py ......

python pyc

 什么是pyc文件
pyc是一种二进制文件,是由py文件经过编译后,生成的文件,是一种byte code,py文件变成pyc文件后,加载的速度有所提高,而且pyc是一种跨平台的字节码,是由python的虚拟机来执行的,这个是类似于JAVA或者.NET的虚拟机的概念。pyc的内容,是跟python的版本相关的,不同版本编译后的pyc文件是不同的,2 ......

用python的cmd模块写一个简单的shell

 from cmd import *
class MyShell(Cmd):
    def preloop(self):
        print "print this line before entering the loop"
            
    def postloop(self):
&nb ......

Python and MySQL

 近来需要用Python对MySQL数据库进行操作。Python久闻其名,未见其“人”;数据库曾经很高分,早已还给先生,更无MySQL经验。于是一切从零开始,借机好好学习一番。
Python这个脚本语言确实名副其实,用了几天便喜欢上它啦。很简洁,很方便。以缩减作为模块分割符,读起来赏心悦目。python的内建数据类型( ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号