标签:start cpu span from ini code 获取 相互 隔离
1、由于python多线程适合于多IO操作,但不适合于cpu计算型工作,这时候可以通过多进程实现。python多进程简单实用
# 多进程,可以cpu保持一致,python多线程适合多io.对于高cpu的可以通过多进程实现。 import multiprocessing import time def run(name): print(" %s process is running "%(name)) time.sleep(2) if __name__ == ‘__main__‘: for i in range(1, 10): process = multiprocessing.Process(target=run, args=(i,)) process.start()
2、python多进程。在操作系统中所有的进程都是有根进程(进程号0来创建的)。python获取主进程号和子进程号
# 多进程,可以cpu保持一致,python多线程适合多io.对于高cpu的可以通过多进程实现。 import multiprocessing import time import os def run(name): print(" %s process is running "%(name)) time.sleep(2) def info(name): print("%s"%(name)) print("当前进程号:%s"%(os.getpid())) print("父进程号:%s"%(os.getppid())) if __name__ == ‘__main__‘: info("parent process") process = multiprocessing.Process(target=info,args=("child process",)) process.start() E:\Users\xiajinqi\PycharmProjects\Atm\venv\Scripts\python.exe E:/Users/xiajinqi/PycharmProjects/Atm/333.py parent process 当前进程号:23420 父进程号:2372 child process 当前进程号:23468 父进程号:23420 Process finished with exit code 0
3、queue 实现进程通讯,进程Q要实现通讯。必须指明为进程Q。原理:在创建子进程时候,传递一个Q,实际相当于复制了一个新的Q给子进程。子进程向新的Q输入数据时候。进程Q通过一个反系列化实现将新的数据同步到旧的Q(即父进程Q)。两个程序之间内存是隔离的。Q也是相互独立的。
# 多进程,可以cpu保持一致,python多线程适合多io.对于高cpu的可以通过多进程实现。 from multiprocessing import Process,Queue # 只名为 进程Q import time import os qu = Queue() def test(qu): qu.put(["克隆Q"]) if __name__ == ‘__main__‘: process = Process(target=test,args=(qu,)) process.start() print(qu.get()) E:\Users\xiajinqi\PycharmProjects\Atm\venv\Scripts\python.exe E:/Users/xiajinqi/PycharmProjects/Atm/333.py [‘克隆Q‘] Process finished with exit code 0
标签:start cpu span from ini code 获取 相互 隔离
原文地址:https://www.cnblogs.com/xiajq/p/9464192.html