位置: IT常识 - 正文
推荐整理分享Python中fock()函数如何使用(python中fork函数),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:python f函数,f'python,python中的foo函数,python中fsolve函数,python flock,python flock,python fseek函数的用法,python中的foo函数,内容如对您有帮助,希望把文章链接给更多的朋友!
首先,在python中我们要实现多进程,有两个模块可以用:1)os中的fork()函数2)multiprocessing模块
fork()函数
函数原型:
Helponbuilt-infunctionforkinmoduleposix:fork(...)fork()->pidForkachildprocess.Return0tochildprocessandPIDofchildtoparentprocess.从fork()函数原型来看,它也属于一个内建函数。
子进程永远返回0,而父进程返回子进程的ID。这样做的理由是,一个父进程可以fork()出很多子进程,所以,父进程要记下每个子进程的ID,而子进程只需要调用getppid()就可以拿到父进程的ID。
相关推荐:《Python视频教程》
Python的进程函数fork()是在os模块,下面是一个关于进程的例子:
importosprintos.getpid()#获取子进程的进程号pid=os.fork()ifpid==0:print'Iamchildprocess(%s)andmyparentis%s.'%(os.getpid(),os.getppid())else:print'I(%s)justcreatedachildprocess(%s).'%(os.getpid(),pid)执行结果:
1526I(1526)justcreatedachildprocess(1527).Iamchildprocess(1527)andmyparentis1526.有了fork调用,一个进程在接到新的任务时,就可以复制出一个子进程来处理新任务。常见的Apache服务器就是由父进程监听端口,一旦有新的http请求时,就fork出子进程来处理新的http请求。
再看一个例子:
#coding=utf-8importosos.fork()print1执行结果:
11程序中,父进程中创建了一个子进程,子进程运行打印了一个1,回到父进程又打印了一个1,所以结果是打印了2个1。
注意:
上面创建进程的函数都是Unix/Linux下的,Windows下是没有的,那在Windows下又使用什么实现多进程呢?
由于Python是跨平台的,自然也应该提供一个跨平台的多进程支持。multiprocessing模块就是跨平台版本的多进程模块, 支持子进程、通信和共享数据、执行不同形式的同步。
multiprocessing模块提供了一个Process类来创建一个新的进程对象。
相关推荐:
下一篇:在Python中字典按值排序的实现方法(python字典按要求)
友情链接: 武汉网站建设