并发编程---Process对象的其他属性或方法
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.开启子进程的两种方式/2.查看pid/3.Process对象的其他属性或方法/4.守护进程
1.开启子进程的两种方式: # 方式1: from multiprocessing import Process import time def task(name): print('%s is ru ...
- Day9 进程理论 开启进程的两种方式 多进程实现并发套接字 join方法 Process对象的其他属性或者方法 守护进程 操作系统介绍
操作系统简介(转自林海峰老师博客介绍) #一 操作系统的作用: 1:隐藏丑陋复杂的硬件接口,提供良好的抽象接口 2:管理.调度进程,并且将多个进程对硬件的竞争变得有序 #二 多道技术: 1.产生背景: ...
- 8 并发编程-(线程)-多线程与多进程的区别&Thread对象的其他属性或方法
1.开启速度 在主进程下开启线程比 开启子进程快 # 1 在 主进程下开启线程 from threading import Thread def work(): print('hello') if ...
- 并发编程 - 线程 - 1.开启线程的两种方式/2.进程与线程的区别/3.Thread对象的其他属性或方法/4.守护线程
1.开启线程的两种方式: 进程,线程: 进程只是用来把资源集中到一起(进程只是一个资源单位,或者说资源集合)而线程才是cpu上的执行单位) 1.同一个进程内的多个线程共享该进程内的地址资源 2.创建线 ...
- 多线程《四》Thread对象的其他属性和方法
Thread对象的其他属性或方法 介绍 Thread实例对象的方法 # isAlive(): 返回线程是否活动的. # getName(): 返回线程名. # setName(): 设置线程名. th ...
- python 并发编程 多进程 Process对象的其他属性方法 join 方法
一 Process对象的join方法 在主进程运行过程中如果想并发地执行其他的任务,我们可以开启子进程,此时主进程的任务与子进程的任务分两种情况 情况一: 在主进程的任务与子进程的任务彼此独立的情况下 ...
- python 并发编程 多进程 Process对象的其他属性方法 terminate与is_alive name pid 函数
进程对象的其他方法一: terminate与is_alive is_alive() 立刻查看的子进程结果 是否存活 from multiprocessing import Process impor ...
- python 并发编程 多线程 Thread对象的其他属性或方法
介绍 Thread实例对象的方法 # isAlive(): 返回线程是否活动的. # getName(): 返回线程名. # setName(): 设置线程名. threading模块提供的一些方法: ...
- 并发编程 process 模块的方法及运用 僵尸与孤儿
进程创建的两种方法 Process() 继承Process 重写run方法,传参数的时候要写init,但是注意要在init方法中运行父类的init方法 Windows下写代码开启子进程时,必须写上if ...
随机推荐
- 编译你的第一个Java虚拟机--Centos 7 编译openJdk1.7源码
一.前言 最近在看<深入java虚拟机>,看完后,打算自己实际编译一个jvm出来看看,实践一下. 书上提到了Oracle JDK和OpenJdk的关系,Oracle Jdk7 和OpenJ ...
- Mac下git通过SSH进行免密码安全连接github
Git——The stupid content tracker(傻瓜内容跟踪器) Git是Linux的缔造者Linus Torvalds为了帮助管理Linux内核源码而开发的一款免费.开源的分布式版本 ...
- web初级开发的那些坑
1.在使用js原生的XMLHttpRequest加载.xml文件时,老是不对,按照书上的写的没错,后来才发现是我的web.xml文件中阻止了.xml文件的加载. 2.有关于string解析成json数 ...
- 转载]PhpCms V9调用指定栏目子栏目文章的两种方法
PhpCms V9调用指定栏目子栏目文章的两种方法 第一种.直接写子栏目id ,用cat in {pc:get sql="SELECT * from v9_news where status ...
- Nginx作为TCP负载均衡
参考文档:https://www.cnblogs.com/stimlee/p/6243055.html Nginx在1.9版本以后支持TCP负载均衡,模块默认是没有编译的,需要编译时添加—with-s ...
- AIX文件系统和存储部署(转)
文件系统和存储部署 文件系统的管理是AIX存储结构中的最后一环.定义完lv后,可采用如下两种方式使用lv: a.作为裸设备(raw)使用,一般是数据库型的应用 b.在lv上定义文件系统,并提供文件和数 ...
- AIX装机问题123
好久没有实施,好记性不如好笔记,那就记录下吧 1文件系统创建挂载 通过smit工具很容易简单举例创建一个jfs2类型文件系统并挂载 创建lv smit mklv 创建jfs2类型文件系统 指定lv s ...
- F#周报2018年第51期
新闻 有经验的开发者选择F# 2018年10佳技术讲话 试用F#开发WebAssembly Fable.Remoting: 刷新访问令牌 F#开发WebAssembly现在可以使用代码补全 Rider ...
- {Django基础六之ORM中的锁和事务}一 锁 二 事务
Django基础六之ORM中的锁和事务 本节目录 一 锁 二 事务 一 锁 行级锁 select_for_update(nowait=False, skip_locked=False) #注意必须用在 ...
- Hbase建表时遇到的问题This could be a sign that the server has too many connections
Hbase创建表时遇到以下错误: ERROR: org.apache.hadoop.hbase.ZooKeeperConnectionException: HBase is able to conne ...