在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Python/ Python的多進程問題

Python的多進程問題

from multiprocessing.managers import BaseManager
import queue

db = {"name": "123456"}
print(dir(db))

class RegisterManager(BaseManager):
    pass

def getUsers():
    return db

RegisterManager.register("getUsers", getUsers)

manager = RegisterManager(address = ("127.0.0.1", 5000), authkey=b"666")
if __name__ == "__main__":
    manager.start()
    userTable = manager.getUsers()
    print(dir(userTable))
    userTable["name"] = "王尼瑪"
    manager.shutdown()

這個是我的代碼,第22行會報錯
圖片描述
第5行的輸出
圖片描述
第19行的輸出,從manager里調(diào)用函數(shù)取出來就沒有__setitem__方法了
有沒有辦法讓第20行的代碼不報錯?
圖片描述

回答
編輯回答
不討喜

SyncManager 便可,如

# -*- coding: utf-8 -*-
from multiprocessing.managers import SyncManager


class RegisterManager(SyncManager):
    pass


if __name__ == "__main__":
    manager = RegisterManager(address=("127.0.0.1", 5000), authkey=b"666")
    manager.start()
    userTable = manager.dict()
    userTable["key"] = "hi"
    manager.shutdown()
2017年10月26日 09:58