04 2012 档案
摘要:Path路径:/etc/pathsiPhone虚拟机,APP安装路径:/Users/tsengyuen/Library/Application Support/iPhone Simulator各种框架路径,如Python:/System/Library/Frameworks/Python.frameworkPython第三放模块site-packages路径:/Library/Python/2.7/site-packages-------------------/usr/usr 目录是应用程序主要存放的目录。该目录中的二进制文件对系统启动和维护并非必要,因此整个 /usr 目录结构常会被存放到
阅读全文
摘要:【转自】昵称:Holbrookhttp://www.cnblogs.com/holbrook/archive/2012/02/25/2368231.html线程的合并python的Thread类中还提供了join()方法,使得一个线程可以等待另一个线程执行结束后再继续运行。这个方法还可以设定一个timeout参数,避免无休止的等待。因为两个线程顺序完成,看起来象一个线程,所以称为线程的合并。一个例子:import threadingimport randomimport timeclass MyThread(threading.Thread): def run(self): ...
阅读全文
摘要:【转自】昵称:Holbrookhttp://www.cnblogs.com/holbrook/archive/2012/02/25/2368231.html前面介绍了互斥锁和条件变量解决线程间的同步问题,并使用条件变量同步机制解决了生产者与消费者问题。让我们考虑更复杂的一种场景:产品是各不相同的。这时只记录一个数量就不够了,还需要记录每个产品的细节。很容易想到需要用一个容器将这些产品记录下来。Python的Queue模块中提供了同步的、线程安全的队列类,包括FIFO(先入先出)队列Queue,LIFO(后入先出)队列LifoQueue,和优先级队列PriorityQueue。这些队列都实现了锁
阅读全文
摘要:【转自】昵称:Holbrookhttp://www.cnblogs.com/holbrook/archive/2012/02/25/2368231.html很多时候,线程之间会有互相通信的需要。常见的情形是次要线程为主要线程执行特定的任务,在执行过程中需要不断报告执行的进度情况。前面的条件变量同步已经涉及到了线程间的通信(threading.Condition的notify方法)。更通用的方式是使用threading.Event对象。threading.Event可以使一个线程等待其他线程的通知。其内置了一个标志,初始值为False。线程通过wait()方法进入等待状态,直到另一个线程调用se
阅读全文
摘要:【转自】昵称:Holbrookhttp://www.cnblogs.com/holbrook/archive/2012/02/25/2368231.html互斥锁是最简单的线程同步机制,Python提供的Condition对象提供了对复杂线程同步问题的支持。Condition被称为条件变量,除了提供与Lock类似的acquire和release方法外,还提供了wait和notify方法。线程首先acquire一个条件变量,然后判断一些条件。如果条件不满足则wait;如果条件满足,进行一些处理改变条件后,通过notify方法通知其他线程,其他处于wait状态的线程接到通知后会重新判断条件。不断的
阅读全文
摘要:【转自】昵称:Holbrookhttp://www.cnblogs.com/holbrook/archive/2012/02/25/2368231.html死锁在线程间共享多个资源的时候,如果两个线程分别占有一部分资源并且同时等待对方的资源,就会造成死锁。尽管死锁很少发生,但一旦发生就会造成应用的停止响应。下面看一个死锁的例子:# encoding: UTF-8import threadingimport timeclass MyThread(threading.Thread): def do1(self): global resA, resB if mute...
阅读全文
摘要:【转自】昵称:Holbrookhttp://www.cnblogs.com/holbrook/archive/2012/02/25/2368231.html问题的提出上一节的例子中,每个线程互相独立,相互之间没有任何关系。现在假设这样一个例子:有一个全局的计数num,每个线程获取这个全局的计数,根据num进行一些处理,然后将num加1。很容易写出这样的代码:# encoding: UTF-8import threadingimport timeclass MyThread(threading.Thread): def run(self): global num ...
阅读全文
摘要:【转自】昵称:Holbrookhttp://www.cnblogs.com/holbrook/archive/2012/02/25/2368231.html如上一节,python的threading.Thread类有一个run方法,用于定义线程的功能函数,可以在自己的线程类中覆盖该方法。而创建自己的线程实例后,通过Thread类的start方法,可以启动该线程,交给python虚拟机进行调度,当该线程获得执行的机会时,就会调用run方法执行线程。让我们开始第一个例子:# encoding: UTF-8import threadingimport timeclass MyThread(threa
阅读全文
摘要:【转自】昵称:Holbrookhttp://www.cnblogs.com/holbrook/archive/2012/02/25/2368231.html前面介绍过多线程的基本概念,理解了这些基本概念,掌握python多线程编程就比较容易了。在开始之前,首先要了解一下python对多线程的支持。虚拟机层面Python虚拟机使用GIL(Global Interpreter Lock,全局解释器锁)来互斥线程对共享资源的访问,暂时无法利用多处理器的优势。语言层面在语言层面,Python对多线程提供了很好的支持,Python中多线程相关的模块包括:thread,threading,Queue。可以
阅读全文
摘要:【转自】昵称:Holbrookhttp://www.cnblogs.com/holbrook/archive/2012/02/25/2368231.html多线程编程必须理解的一些基本概念,适用于所有编程语言。内容:并发式编程多任务操作系统多线程vs多进程线程安全线程的生命周期线程的类型并发式编程不同的编程范式对软件有不同的视角。并发式编程将软件看做任务和资源的组合——任务之间竞争和共享资源,当资源满足时执行任务,否则等待资源。并发式编程使得软件易于理解和重用,在某些场景能够极大提高性能。多任务操作系统要实现并发,首先需要操作系统的支持。现在的操作系统大部分都是多任务操作系统,可以“同时”执行
阅读全文
摘要:【转自】昵称:Holbrookhttp://www.cnblogs.com/holbrook/archive/2012/02/25/2368231.html每个真正的程序员,可能都会梦想着能够发布开源项目,让自己的代码被别人所用。开源项目会发布到开发的版本管理系统(比如GitHub)上面,为了让大家能够方便使用你的代码,项目的目录结构应该遵循一定的规范。即使不是开源项目,项目目录结构符合一定的规范对你的项目管理也是有好处的。下面列出python开源项目的通常目录结构及说明:.tx/ 如果你使用Transifex进行国际化的翻译工作,创建此目录 con...
阅读全文
摘要:【转自】昵称:Holbrookhttp://www.cnblogs.com/holbrook/archive/2012/02/25/2368231.html在python开源项目目录结构的基础上,进一步定义django的目录结构。根据django的特性,分成两部分:project结构和app结构。project结构这里定义的是python开源项目目录结构中的$PROJ_NAME目录内的内容,需要与python开源项目目录结构结合起来。PROJ_NAME/ __init__.py 这几个文件是django创建project所必须的,不做过多说明 manage.py ...
阅读全文
摘要:MySQL-Python 链接地址:http://mysql-python.sourceforge.net这里可以下载源代码, 进行安装:http://sourceforge.net/projects/mysql-python/安装过程可能会出现这个错误:Mysqldb- error: Unable to find vcvarsall.bat则下载Python2.6.5的一个修复版本进行安装即可:http://soemin.googlecode.com/files/MySQL-python-1.2.3c1.win32-py2.6.exe安装完成后, 打开Python的终端, 里面输入:>
阅读全文
摘要:转载自 xiake200704 最终编辑 xiake200704一、简介py2exe是一个将python脚本转换成windows上的可独立执行的可执行程序(*.exe)的工具,这样,你就可以不用装python而在windows系统上运行这个可执行程序。py2exe已经被用于创建wxPython,Tkinter,Pmw,PyGTK,pygame,win32com client和server,和其它的独立程序。py2exe是发布在开源许可证下的。目前只有python2.x的才有对应版本的。二、安装py2exe从http://prdownloads.sourceforge.net/py2exe下..
阅读全文
摘要:原文地址:Python中的Subprocess作者:正在拉磨摘自:http://li2z.cn/2010/04/14/python_subprocess/此文和python 内建函数一样,内容全部出自python官方文档,但是会 有自己的理解,并非单纯的翻译。所以,如果我理解有误,欢迎指正,谢谢。从python2.4版本开始,你就可以用可以用subprocess这个模块来产生子进程,并连接到子进程的标准输入 /输出/错误中去,还可以得到子进程的返回值。subprocess意在替代其他几个老的模块或者函数,比如:os.systemos.spawn*os.popen*popen2.*command
阅读全文