This article describes how to run a function in each independent process using python, and related skills related to Python operations, for more information about how to run a function in each independent process, see the example in this article. Share it with you for your reference. The specific analysis is as follows:
This simple function can be equivalent to running another function in a separate process, which is very useful for releasing memory resources.
#!/usr/bin/env pythonfrom __future__ import with_statementimport os, cPickledef run_in_separate_process(func, *args, **kwds): pread, pwrite = os.pipe() pid = os.fork() if pid > 0: os.close(pwrite) with os.fdopen(pread, 'rb') as f: status, result = cPickle.load(f) os.waitpid(pid, 0) if status == 0: return result else: raise result else: os.close(pread) try: result = func(*args, **kwds) status = 0 except Exception, exc: result = exc status = 1 with os.fdopen(pwrite, 'wb') as f: try: cPickle.dump((status,result), f, cPickle.HIGHEST_PROTOCOL) except cPickle.PicklingError, exc: cPickle.dump((2,exc), f, cPickle.HIGHEST_PROTOCOL) os._exit(0)#an example of usedef treble(x): return 3 * xdef main(): #calling directly print treble(4) #calling in separate process print run_in_separate_process(treble, 4)
I hope this article will help you with Python programming.