python进程基本使用
常用方法
p.start() 与 p.join()
p.start():当前进程准备就绪,等待被CPU调度,简单理解也就是启动进程p.join():等待当前进程的任务执行完毕后再向下继续执行
代码如下:
1 | import multiprocessing |
res.join()的出现会使得程序在执行完子进程之后再继续执行主进程,当然,上述案例已经让程序按顺序执行了,进程意义不大了。
p.daemon = bool,守护进程(必须放置在start之前)
p.daemon = True,设置为守护进程,主进程执行完毕后子进程也将被自动关闭。p.daemon = Flase,设置为非守护进程,主进程等待子进程执行结束之后,主进程才会被关闭结束。
获取进程的信息
os.getpid与os.getppid:获取进程与父进程的pidlen(threading.enumerate()):获取进程下线程个数p.name = "第一个进程":设置进程名字multiprocessing.current_process().name:获取当前进程的名字
自定义进程类
可以直接讲线程需要做的事情写run方法当中
1 | import multiprocessing |
CPU个数
1 | multiprocessing.cpu_count() |
数据共享
数据共享分为三种情况
- 第一种情况是进程方式选择为
fork模式,子进程拷贝了主进程的资源与数据,但是拷贝了已经是完全一个新的变量了,子进程改变并不能导致主进程改变,但是可以共享文件对象对象,实现多个进程同时写入一个文件当中。 - 第二种情况是接入第三方数据共享平台,如多个进程操控同一个数据库或者同一个文件,通过修改第三方的数据进程数据共享。
- 最后一种情况是创建一个数据共享对象实现数据共享,案例如下:
1 | import multiprocessing、 |
或
1 | import multiprocessing |
https://m42-orion.github.io/2022/08/01/python%E8%BF%9B%E7%A8%8B%E5%9F%BA%E6%9C%AC%E4%BD%BF%E7%94%A8/
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 念念不忘,必有回响!


/封面.png)







