Process对象的其他属性或方法

#join方法
from multiprocessing import Process
import time,os '''
需求:让主进程等着子进程运行完毕,才能基于子进程运行的结果,进而执行。
'''
def task():
print('%s is running,parent id is <%s>' %(os.getpid(),os.getppid()))
time.sleep(3)
print('%s is done,parent id is <%s>' %(os.getpid(),os.getppid())) if __name__ == '__main__':
p = Process(target=task,)
p.start() p.join()# 主进程会在着等,等的过程中一直运行子进程
print('主',os.getpid(),os.getppid())
print(p.pid) ###并发###
from multiprocessing import Process
import time,os
'''
需求:让主进程等着子进程运行完毕,才能基于子进程运行的结果,进而执行。
'''
def task(name,n):
print('%s is running' %name)
time.sleep(n) if __name__ == '__main__':
start=time.time() # 判断三个子进程是并发的,还是串行
p1 = Process(target=task,args=('子进程1',5))
p2 = Process(target=task,args=('子进程2',4))
p3 = Process(target=task,args=('子进程3',3))
p_l=[p1,p2,p3] # p1.start()
# p2.start()
# p3.start()
for p in p_l:
p.start() # p1.join()
# p2.join()
# p3.join()
for p in p_l:
p.join()
# p.start只是发一个信号,操作系统可能接收其他程序发的信号,不回去考虑谁先发送的信号,是统筹管理的
print('主',(time.time()-start)) ###串行###
from multiprocessing import Process
import time,os
'''
需求:让主进程等着子进程运行完毕,才能基于子进程运行的结果,进而执行。
'''
def task(name,n):
print('%s is running' %name)
time.sleep(n) if __name__ == '__main__':
start=time.time() # 判断三个子进程是并发的,还是串发
p1 = Process(target=task,args=('子进程1',5))
p2 = Process(target=task,args=('子进程2',4))
p3 = Process(target=task,args=('子进程3',3)) p1.start()
p1.join()
p2.start()
p2.join()
p3.start()
p3.join()
# p.start只是发一个信号,操作系统可能接收其他程序发的信号,不回去考虑谁先发送的信号,是统筹管理的
print('主',(time.time()-start)) ###了解###
from multiprocessing import Process
import time,os def task():
print('%s is running,parent id is <%s>' %(os.getpid(),os.getppid()))
time.sleep(3)
print('%s is done,parent id is <%s>' %(os.getpid(),os.getppid())) if __name__ == '__main__':
# p = Process(target=task,)
# p.start()
# print(p.is_alive()) # 打印结果:False
# p.join()
# print('主',os.getpid(),os.getppid())
# print(p.pid) # 打印进程id
# print(p.is_alive()) # 查看进程是死是活 打印结果:False p = Process(target=task,name='sub--Process')
p.start()
p.terminate() # 干死进程,但是只是给操作系统发一个信号,系统需要反应一段时间
time.sleep(3)
print(p.is_alive()) # 打印结果:False
print('主')
print(p.name) # 打印进程名称

并发编程---Process对象的其他属性或方法的更多相关文章

  1. 并发编程 - 进程 - 1.开启子进程的两种方式/2.查看pid/3.Process对象的其他属性或方法/4.守护进程

    1.开启子进程的两种方式: # 方式1: from multiprocessing import Process import time def task(name): print('%s is ru ...

  2. Day9 进程理论 开启进程的两种方式 多进程实现并发套接字 join方法 Process对象的其他属性或者方法 守护进程 操作系统介绍

    操作系统简介(转自林海峰老师博客介绍) #一 操作系统的作用: 1:隐藏丑陋复杂的硬件接口,提供良好的抽象接口 2:管理.调度进程,并且将多个进程对硬件的竞争变得有序 #二 多道技术: 1.产生背景: ...

  3. 8 并发编程-(线程)-多线程与多进程的区别&Thread对象的其他属性或方法

    1.开启速度  在主进程下开启线程比 开启子进程快 # 1 在 主进程下开启线程 from threading import Thread def work(): print('hello') if ...

  4. 并发编程 - 线程 - 1.开启线程的两种方式/2.进程与线程的区别/3.Thread对象的其他属性或方法/4.守护线程

    1.开启线程的两种方式: 进程,线程: 进程只是用来把资源集中到一起(进程只是一个资源单位,或者说资源集合)而线程才是cpu上的执行单位) 1.同一个进程内的多个线程共享该进程内的地址资源 2.创建线 ...

  5. 多线程《四》Thread对象的其他属性和方法

    Thread对象的其他属性或方法 介绍 Thread实例对象的方法 # isAlive(): 返回线程是否活动的. # getName(): 返回线程名. # setName(): 设置线程名. th ...

  6. python 并发编程 多进程 Process对象的其他属性方法 join 方法

    一 Process对象的join方法 在主进程运行过程中如果想并发地执行其他的任务,我们可以开启子进程,此时主进程的任务与子进程的任务分两种情况 情况一: 在主进程的任务与子进程的任务彼此独立的情况下 ...

  7. python 并发编程 多进程 Process对象的其他属性方法 terminate与is_alive name pid 函数

    进程对象的其他方法一: terminate与is_alive is_alive()  立刻查看的子进程结果 是否存活 from multiprocessing import Process impor ...

  8. python 并发编程 多线程 Thread对象的其他属性或方法

    介绍 Thread实例对象的方法 # isAlive(): 返回线程是否活动的. # getName(): 返回线程名. # setName(): 设置线程名. threading模块提供的一些方法: ...

  9. 并发编程 process 模块的方法及运用 僵尸与孤儿

    进程创建的两种方法 Process() 继承Process 重写run方法,传参数的时候要写init,但是注意要在init方法中运行父类的init方法 Windows下写代码开启子进程时,必须写上if ...

随机推荐

  1. [UFLDL] *Train and Optimize

    Deep learning:三十七(Deep learning中的优化方法) Deep learning:四十一(Dropout简单理解) Deep learning:四十三(用Hessian Fre ...

  2. [Bayes] Metroplis Algorithm --> Gibbs Sampling

    重要的是Gibbs的思想. 全概率分布,可以唯一地确定一个联合分布 ---- Hammersley-Clifford 多元高斯分布 当然,这个有点复杂,考虑个简单的,二元高斯,那么超参数就是: 二元高 ...

  3. Possible causes are invalid address of the remote server or browser start-up failure.

    appium 脚本运行不起来 Caused by: org.apache.http.conn.HttpHostConnectException: Connect to 127.0.0.1:4723 [ ...

  4. 面试题思考:GET和POST两种基本请求方法的区别

    面试回答: GET请求在URL中传送的参数是有长度限制的,而POST没有. GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息. GET参数通过URL传递,POST放在Re ...

  5. TSPL学习笔记(2):过程和变量绑定

    变量的引用 语法: variable 返回: variable的值 如果在某个范围内存在对某个标识符的变量绑定,那么当这个标识符以表达式的形式出现的时候被认为是其所绑定变量的值. 在引用一个标识符的时 ...

  6. 【SpringCloud微服务实战学习系列】服务治理Spring Cloud Eureka

    Spring Cloud Eureka是Spring Cloud Netflix微服务中的一部分,它基于NetFlix Sureka做了二次封装,主要负责完成微服务架构中的服务治理功能. 一.服务治理 ...

  7. Web 通信 之 长连接、长轮询(long polling)(转载)

    基于HTTP的长连接,是一种通过长轮询方式实现"服务器推"的技术,它弥补了HTTP简单的请求应答模式的不足,极大地增强了程序的实时性和交互性. 一.什么是长连接.长轮询? 用通俗易 ...

  8. Django中,ajax检测注册用户信息是否可用?

    ajax检测注册用户信息主体思路 1.在settings.py中配置需要使用的信息 #对static文件进行配置 STATICFILES_DIRS=[ os.path.join(BASE_DIR,'s ...

  9. ros查看摄像头是否打开正常

    使用rqt_image_view命令,查看摄像头是否正常输出图像

  10. [No0000CD]shell 中的单行注释和多行注释

    1. 单行注释 众所周知,#  比如想要注释:echo “ni” # echo "ni" 2. 多行注释 法一: : << ! 语句1 语句2 语句3 语句4 ! 例如 ...