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('\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
'''

猜你喜欢

转载自www.cnblogs.com/staff/p/9692213.html