码迷,mamicode.com
首页 > 编程语言 > 详细

python进程

时间:2018-09-13 22:34:18      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:__name__   通知   multi   单位   就是   隔离   e30   process   数据   

进程                                                                                                                     

进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源费配和调度的基本单位,是操作系统结构的基础。在当代面向线程设计的计算机结构中,进程是线程的容器,同一个进程中的多个线程可以共享其资源,而进程与进城之间可以起到数据隔离的作用(即同一个程序执行两次,就会在操作系统出现两个进程,所以同时运行同一个软件做不同的事情也不会混乱)。

进程的并行和并发                                                                                                                       

并行:是指两者同时进行,微观上,就是在一个时刻,有不同的程序执行,要求必须有多个处理器。

并发:是指系统资源有限,两者只能交替轮流使用资源,目的是为了提高效率,从宏观上看某个时刻是同时进行的。

同步、异步、                                                                                                     

 同步和异步:       

  同步就是一个任务的完成需要依赖另一个任务时,只有等待被依赖的任务完成后,依赖的任务才算完成,这是一种可靠的任务序列。成功都成功,失败都失败,两个任务的 状态保持一致。

        异步(回调机制)是不需要等待被依赖的任务完成,只是通知被依赖的任务要完成什么操作,依赖的任务也立即执行,自己完成了整个任务就算完成了。至于被依赖的任务是否完成,依赖他的任务无法确定,所以这是一种不可靠的任务序列。

  使用process模块创建进程           

技术分享图片
import time
from multiprocessing import Process

def f(n):    
    print(n)
    print(子进程)

if __name__ == __main__:
    p = Process(target=f, args=(666,))
    p.start()
    time.sleep(1)
    print(主进程)
创建子进程
技术分享图片
import time
from multiprocessing import Process

def f(name):
    print(hello, name)
    time.sleep(1)
    print(子进程)
if __name__ == __main__:
    p = Process(target=f, args=(bob,))
    p.start()
    p.join()
    print(父进程)
join

继承创建进程:

技术分享图片
def task(n):
    n+=1
    print(n)
if __name__ == __main__:
    for i in range(3):
        p=Process(target=task,args=(i,))
        p.start()
View Code

进程之间的数据隔离:

技术分享图片
class MyProcess(Process):
    def __init__(self,name):
        super().__init__()
        self.name=name
    def run(self):
        print(os.getpid())
        print(self.name)
if __name__ == __main__:

    p1=MyProcess(messi)
    p2=MyProcess(c罗)
    p3=MyProcess(salah)

    p1.start() #start会自动调用run
    p2.start()
    p3.start()

    p1.join()
    print(os.getppid())
View Code

进程之间的数据共享:

进程池

 

  

 

python进程

标签:__name__   通知   multi   单位   就是   隔离   e30   process   数据   

原文地址:https://www.cnblogs.com/feifeifeisir/p/9643264.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!