process可以理解为进程

thread则是线程,今天主要看了关于进程的触发方法。


之所以要多线程,个人理解有两个原因,1. 现在服务器的处理能力很强大,通过并发的方式可以充分利用CPU的计算能力,2. 通过控制并行运算的PID,可以避免运算过载... 因为有一些程序自身并不能有效的控制内存的使用,所以要限制这类程序的执行数量


多进程运行使用了multiprocessing模块,而且最近发现使用multiprocessing不能调用subprocess模块的子进程。可以使用os.system 

#!/usr/bin/env python
#coding=utf-8
"""
Author: Squall
Last modified: 2011-10-18 16:50
Filename: pool.py
Description: a simple sample for pool class
"""

from multiprocessing import Pool
from time import sleep

def f(x):
    for i in range(10):
        print '%s --- %s ' % (i, x)
        sleep(1)


def main():
    pool = Pool(processes=3)    # set the processes max number 3
    for i in range(11,20):
        result = pool.apply_async(f, (i,))
    pool.close()
    pool.join()
    if result.successful():
        print 'successful'


if __name__ == "__main__":
    main()


转自:

http://blog.chinaunix.net/uid-8326220-id-2975409.html

http://www.cnblogs.com/kaituorensheng/p/4445418.html


如果要多线程,可以使用threading模块


http://www.cnblogs.com/resn/p/5591419.html