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
    '''
  • 相关阅读:
    备忘录模式---行为型
    观察者模式(Observer)---行为型
    Hadoop基础
    centos执行-查看,复制,删除-命令的脚本
    权限问题
    12月centos单词
    配置集群遇到的问题
    SSH--完全分布式主机设置【克隆过安装过Hadoop的主机后】
    java随机排座位
    NewWord
  • 原文地址:https://www.cnblogs.com/staff/p/9692213.html
Copyright © 2011-2022 走看看