python多线程编程

来源:互联网 发布:apache与nginx的进程 编辑:程序博客网 时间:2024/06/08 19:49

使用multiprocessing 模块创建多线程(可以跨平台,fork方法只支持在unix/Linux机器上)

from multiprocessing import Processimport osdef run_process(name):    print 'child process %s,port is %s'%(name,os.getpid())if __name__=='__main__':    print 'parent process %s'%(os.getpid())    for i in range(5):        p = Process(target=run_process,args=(str(i),))        p.start()    p.join()  #实现进程同步    print 'end'

启动大量的子进程,使用进程池创建子进程的方式更常见。

from multiprocessing import Poolimport os,time,randomdef run_process(name):        print ' process %s,port is %s'%(name,os.getpid())        time.sleep(random.random()*3)        print 'task % end' %nameif __name__=='__main__':        print 'current process %s'%(os.getpid())        p = Pool(processes=3)        for i in range(5):                p.apply_async(run_process,args=(str(i),))        p.close()        p.join()        print 'end'#调用join()之前必须调用close(),这样就不能添加进程了
原创粉丝点击