面向对象补充:对象中设置值
class Foo(object): def __init__(self): object.__setattr__(self, 'info', {}) # 在对象中设置值的本质 def __setattr__(self, key, value): self.info[key] = value def __getattr__(self, item): print(item) return self.info[item] obj = Foo() obj.name = 'alex' print(obj.name) v = [] for i in range(10000): v.append(i) print(v)
1. 进程
进程间数据不共享
data_list = [] def task(arg): data_list.append(arg) print(data_list) def run(): for i in range(10): p = multiprocessing.Process(target=task,args=(i,)) # p = threading.Thread(target=task,args=(i,)) p.start() if __name__ == '__main__': run()
常用功能:
import time def task(arg): time.sleep(2) print(arg) def run(): print('111111111') p1 = multiprocessing.Process(target=task,args=(1,)) p1.name = 'pp1' p1.start() print('222222222') p2 = multiprocessing.Process(target=task, args=(2,)) p2.name = 'pp2' p2.start() print('333333333') if __name__ == '__main__': run()
类继承方式创建进程:
class MyProcess(multiprocessing.Process): def run(self): print('当前进程',multiprocessing.current_process()) def run(): p1 = MyProcess() p1.start() p2 = MyProcess() p2.start() if __name__ == '__main__': run()
2.进程间数据共享: (multiprocessing.Queue , Manager)