python虚假的多线程在计算量大的程序中很折磨,真正的多进程需要考虑数据同步问题。这里讨论一下如何同步类的实例,并调用类里的方法。调用类的方法时,应该

    1. import multiprocessing
    2. import random
    3. from multiprocessing.managers import BaseManager
    4. import anytree
    5. import time
    6. class MyTree(anytree.Node):
    7. def __init__(self, name, **kwargs):
    8. super().__init__(name, **kwargs)
    9. self.num = 0
    10. def add_one(self):
    11. self.num += 1
    12. a = 2**3 + 98**83/12
    13. time.sleep(random.random())
    14. def add_one(t: MyTree):
    15. t.add_one()
    16. if __name__ == '__main__':
    17. manager = BaseManager()
    18. manager.register('MyTree', MyTree)
    19. manager.start()
    20. t = manager.MyTree('a')
    21. print(t)
    22. l = []
    23. for i in range(200):
    24. p = multiprocessing.Process(target=add_one, args=(t, ))
    25. l.append(p)
    26. p.start()
    27. for p in l:
    28. print('remaining: ', len(multiprocessing.active_children()))
    29. p.join()
    30. print(t)