ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

进程与程序 并行 并发 串行 阻塞 join函数

2019-03-07 16:38:29  阅读:194  来源: 互联网

标签:task join start 程序 并发 time 串行 进程


进程是正在运行的程序,程序是程序员编写的一对代码,也就是一堆字符,当这堆代码被系统加载到内存并执行,就有了进程。

(需要注意的是:一个程序是可以产生多个程序,就像我们可以同时运行多个QQ程序一样,会形成多个进程)

并发指的是,多个事件同时发生了(其实是多道技术,cpu速度执行太快,看起来像是同时执行起来

阻塞与非阻塞指的是程序的状态

阻塞状态指的是因为程序遇到了io操作,或者是sleep,导致后续代码不被cpu执行                                                 非阻塞与之相反,表示程序正在被cpu执行                        补充:进程的三种状态                                                       就绪态,运行态,和阻塞态                                                      多道技术会在进程执行时间过程或遇到io时自动切换换其他进程,意味着io操作与进程被剥夺执行都会造成进程无法继续执行                                                                           join函数  :调用start函数后的操作就由操作系统来玩了,至于何时开启进程,进程何时执行,何时结束都与应用程序无关,所以当前程序会继续往下执行,join函数就可以是父进程等待子进程结束后继续执行   

from multiprocessing import Process
import time,random

x=1000

def task(n):
print('%s is runing' %n)
time.sleep(n)

if __name__ == '__main__':
start_time=time.time()

p1=Process(target=task,args=(1,))
p2=Process(target=task,args=(2,))
p3=Process(target=task,args=(3,))
p1.start()
p2.start()
p3.start()

p3.join() #3s
p1.join()
p2.join()

print('主',(time.time() - start_time))

start_time=time.time()
p_l=[]
for i in range(1,4):
p=Process(target=task,args=(i,))
p_l.append(p)
p.start()
for p in p_l:
p.join()

print('主',(time.time() - start_time))

                                                                       

 

标签:task,join,start,程序,并发,time,串行,进程
来源: https://www.cnblogs.com/tangda/p/10490546.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有