#coding=utf-8

def aJob(arg):
    """
    提供给多线程调用
    """
    import threading
    t = threading.current_thread()
    print str(arg)+"current thread name is:"+t.getName()+"\n"


def multiThread():
    """
    多线程任务执行
    """
    from multiprocessing.dummy import Pool as ThreadPool
    from multiprocessing import cpu_count
    cnt_cpu = cpu_count()
    cpus = 10*cnt_cpu #线程池大小
    pool = ThreadPool(cpus)
    _lstParam = range(0,10000)
    pool.map(aJob,_lstParam)
    pool.close()
    pool.join()
    print "multi thread job done"

################以下是多进程############################    
def runProc(name):
    """
    提供给多进程调用
    """
    import os
    print "child process %s(%s)"%(name,os.getpid())
    
def multiProcess():
    """
    多进程
    """
    from multiprocessing import Pool
    from multiprocessing import cpu_count
    import os
    cpus = 1*cpu_count()
    lst_grp = range(0,100)
    p = Pool(cpus)
    for i in range(0,100):
        p.apply_async(runProc,args=(lst_grp[i],))
    p.close()
    p.join()
    print "multi process job done"

def oneProcess():
    """
    启动一个进程
    """
    from multiprocessing import Process
    import os
    p = Process(target=runProc,args=("processName",))
    print "one process will start"
    p.start()
    p.join()
    print "one process end"

if __name__ == "__main__":
    multiThread()#多线程
    multiProcess()#多进程
    oneProcess()#启动一个进程

from multiprocessing.dummy import Pool as ThreadPool    表示引入多线程池

from multiprocessing import cpu_count    表示计算所在计算机cpu数量

 

from multiprocessing import Pool  引入多进程池