1
www5070504 2019-09-09 12:31:23 +08:00
记得多进程库里边提供了一个代理的方法来实现全局 但是性能不咋地.. 要不然试试放缓存里边啊
|
2
Raul7 OP @www5070504 redis ?
|
3
lolizeppelin 2019-09-09 12:54:34 +08:00
请把基础打一下
linux 进程间通信,父子进程 回头再来看 multiprocessing 源码 |
4
laminux29 2019-09-09 13:00:41 +08:00
|
5
Vegetable 2019-09-09 13:22:02 +08:00
```python
import multiprocessing import os import time from multiprocessing import Manager m = Manager() lock = multiprocessing.Lock() pids = m.list() def show(): print("当前 pid:{}".format(pids)) def dosth(): lock.acquire() pid = os.getpid() pids.append(pid) lock.release() show() time.sleep(1) pool = multiprocessing.Pool(5) for i in range(10): pool.apply_async(dosth) pool.close() pool.join() ``` 将就一下 |
6
Cooky 2019-09-09 13:24:05 +08:00 via Android
mmap 共享映射?
|
7
Raul7 OP @lolizeppelin 抱歉老哥 的确新手
|
9
xiaolinjia 2019-09-09 14:49:41 +08:00
我记得多进程通信可以借助多进程的 Queue 啊
from multiprocessing import Manager Manager().Queue() 参考 blog.csdn.net/qq_32446743/article/details/79785684 |
10
conn4575 2019-09-09 16:33:17 +08:00 via Android
Queue+1
|
11
Leigg 2019-09-09 16:56:49 +08:00 via Android
这个应该想到多进程间的几种通信方式: 队列,共享内存,管道
|
12
reus 2019-09-09 17:00:19 +08:00
多进程内存空间是隔离的,所以要么用进程间通讯,要么在主进程 fork/clone 时记录。
|