# multiprocessing是一个支持使用与threading模块类似的API来产生进程的包。multiprocessing包同时提供了本地和远程并发操作,通过使用子进程而非线程有效地绕过了全局解释器锁。因此,multiprocessing模块允许程序员充分利用给定机器上的多个处理器。 import multiprocessing, time, os # def pro(name): # print('hello', name, time.ctime()) # # if __name__ == '__main__': # l = [] # for t in range(4): # t = multiprocessing.Process(target=pro, args=('alex',)) # t.start() # l.append(t) # for t in l: # t.join() # print('end...') # class MyProcess(multiprocessing.Process): # def __init__(self, city): # super(MyProcess, self).__init__() # self.city = city # # def run(self): # '''继承同样重写run方法''' # print('hello', self.name, time.ctime()) # self.name代表进程名MyProcess-1,MyProcess-2,MyProcess-3,MyProcess-4 # # if __name__ == '__main__': # l = [] # for t in range(4): # t = MyProcess('China') # # t.daemon = True # 和线程不一样的是,进程是daemon且不是方法而是属性,直接赋值True就行 # t.start() # l.append(t) # for t in l: # t.join() # print('end...') def info(title): print('title:', title) print('父进程ID:', os.getppid()) # os.getppid()所运行进程的父进程ID,主进程的父进程是pycharm程序 print('该进程ID:', os.getpid()) # os.getpid()所运行进程ID def f(name): info(name) print('hello', name) if __name__ == '__main__': f('main process line') time.sleep(1) p = multiprocessing.Process(target=f, args=('alex',)) p.start() p.join()