#多进程
——进程间通讯(IPC:InterProcessCommunication)
——进程之间无任何共享状态
import multiprocessing
from time import sleep, ctime
class ClockProcess(multiprocessing.Process):
def __init__(self, interval):
super().__init__()
self.interval = interval
def run(self):
while True:
print('The time is %s'%ctime())
sleep(self, interval)
if __name__ == '__main__':
p = ClockProcess(3)
p.start()
while True:
print('sleeping......')
sleep(1)
sleeping......
Process ClockProcess-1:
Traceback (most recent call last):
File "C:UsersBruceAppDataLocalProgramsPythonPython37libmultiprocessingprocess.py", line 297, in _bootstrap
self.run()
File "C:迅雷下载demo.py", line 81, in run
sleep(self, interval)
NameError: name 'interval' is not defined
The time is Mon Dec 24 23:38:25 2018
sleeping......
sleeping......
sleeping......
sleeping......
sleeping......
sleeping......
sleeping......
sleeping......
sleeping......
sleeping......
sleeping......
sleeping......
sleeping......
sleeping......
sleeping......
sleeping......
sleeping......
Process finished with exit code -1
from multiprocessing import Process
import os
def info(title):
print(title)
print('module name:', __name__)
#得到父进程的id
print('parent process:', os.getppid())
#得到本身进程的id
print('process id:', os.getpid())
def f(name):
info('function f')
print('hello', name)
if __name__ == '__main__':
info('main line')
p = Process(target = f, args = ('bob',))
p.start()
p.join()
main line
module name: __main__
parent process: 94984
process id: 103092
function f
module name: __mp_main__
parent process: 103092
process id: 21428
hello bob
Process finished with exit code 0