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
    '''
  • 相关阅读:
    获取随机图片
    依靠前端解决跨域问题的几种方式
    浅谈什么是前端BFC
    script标签中defer和async的区别
    nodejs学习笔记(一):centos7安装node环境
    深入浅出之js闭包知识点梳理(一)
    js实现防抖函数和节流函数
    前端flex布局学习笔记
    es6 之class介绍
    localstorage实现两个页面通信,购物车原理。
  • 原文地址:https://www.cnblogs.com/staff/p/9692213.html
Copyright © 2011-2022 走看看