zoukankan      html  css  js  c++  java
  • 多进程提速

    方式一:multiprocessing.Process

    def worker(procnum, return_dict):
        '''worker function'''
        print str(procnum) + ' represent!'
        return_dict[procnum] = procnum
    
    if __name__ == '__main__':
        manager = Manager()
        return_dict = manager.dict()
        jobs = []
        for i in range(5):
            p = multiprocessing.Process(target=worker, args=(i,return_dict))
            jobs.append(p)
            p.start()
    
        for proc in jobs:
            proc.join()
        # 最后的结果是多个进程返回值的集合
        print return_dict.values()

    方式二:Process

        pool = Pool(4)
        manager = Manager()
        return_dict = manager.dict()
        jobs = []
        q = Queue()
    
        with open(data_path, 'r', encoding='utf8') as fr:
            content = fr.readlines()
            for d in content[:100]:
                q.put(d)
            print('数据放入队列完毕')
    
        for i in range(5):
            p = Process(target=func, args=(q, return_dict))
            jobs.append(p)
            p.start()
        for proc in jobs:
            proc.join()
        print(return_dict.values())

     方式三:Pool

    import multiprocessing
    import time
    
    
    def func(msg):
        print('hello :', msg, time.ctime())
        time.sleep(2)
        print('end', time.ctime())
        return 'done' + msg
    
    
    if __name__ == '__main__':
        pool = multiprocessing.Pool(2)
        result = []
        for i in range(3):
            msg = 'hello %s' % i
            result.append(pool.apply_async(func=func, args=(msg,)))
    
        pool.close()
        pool.join()
    
        for res in result:
            print('***:', res.get())             # get()函数得出每个返回结果的值
    
        print('All end--')
    时刻记着自己要成为什么样的人!
  • 相关阅读:
    java获取年份的后两位
    jdbcTemplate的Dao层封装
    beta准备
    福大软工 · 第十一次作业
    Alpha 冲刺 (10/10)
    Alpha 冲刺 (9/10)
    Alpha 冲刺 (8/10)
    Alpha 冲刺 (7/10)
    Alpha 冲刺 (6/10)
    Alpha 冲刺 (5/10)
  • 原文地址:https://www.cnblogs.com/demo-deng/p/13857556.html
Copyright © 2011-2022 走看看