zoukankan      html  css  js  c++  java
  • Python简单多进程demo

    '''
    多线程使用场景:
    怎样用Python的多线程提高效率?
    io操作不占用CPU
    计算操作占用CPU
    Python多线程不适合CPU操作密集型的任务,适合io操作密集型的任务
    如果有CPU操作密集型的任务需要用多进程,启动八个进程每个进程里一个线程,一共八个线程
    在八核上运行,可以利用八核了,唯一的坏处是数据不能共享
    怎样启动多进程呢?
    '''
    import multiprocessing
    import time
    import threading
    
    # 功能:启动10个进程,每个进程里启动一个线程
    def thread_run():
        print(threading.get_ident())
    def run(name):
        time.sleep(2)
        print("hello",name)
        t = threading.Thread(target=thread_run,)
        t.start()
    if __name__ == '__main__':
        for i in range(10):
            p = multiprocessing.Process(target=run, args=('bob{0}'.format(i),))
            p.start()

     打印子进程和父进程信息:

    '''
    每个进程都是由他的父进程启动的,每个进程都有一个父进程
    '''
    import os
    from multiprocessing import Process
    
    def info(title):
        print(title)
        print('module name:',__name__)  # 模块名
        print('parent process:',os.getppid())  # 父进程ID
        print('process id:', os.getpid())      # 本进程ID
        print('
    
    ')
    
    def f(name):
        info('33[31;1mfunction f33[0m')
        print('hello',name)
    
    if __name__ == '__main__':
        info('33[32;1m main process line33[0m')
        p = Process(target=f, args=('bob',))
        p.start()
        p.join()
    
    '''
     main process line
    module name: __main__
    parent process: 4436
    process id: 6032
    
    
    
    function f
    module name: __mp_main__
    parent process: 6032
    process id: 5800
    
    
    
    hello bob
    '''
  • 相关阅读:
    快速排序
    Web总结
    浏览器兼容性问题汇总
    AngularJS理论基础
    预处器的对比——Sass、LESS.
    js事件知识整理
    Java script基础
    重拾nodeJs
    全国城市三级联动
    js 获取地址栏参数
  • 原文地址:https://www.cnblogs.com/staff/p/9692213.html
Copyright © 2011-2022 走看看