码迷,mamicode.com
首页 > 编程语言 > 详细

Python简单多进程demo

时间:2018-09-23 13:45:02      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:ssi   reading   适合   from   func   form   thread   进程   共享   

 

‘‘‘
多线程使用场景:
怎样用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(\n\n)

def f(name):
    info(\033[31;1mfunction f\033[0m)
    print(hello,name)

if __name__ == __main__:
    info(\033[32;1m main process line\033[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
‘‘‘

 

Python简单多进程demo

标签:ssi   reading   适合   from   func   form   thread   进程   共享   

原文地址:https://www.cnblogs.com/staff/p/9692213.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!