1. 程式人生 > >Python簡單多進程demo

Python簡單多進程demo

inf _id pan 使用場景 pro form mat 簡單 不能

‘‘‘
多線程使用場景:
怎樣用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