进程

'''
什么是进程??
进程就是一个应用软件正在运行的过程
进程的概念起源与操作系统。

同一个程序执行多次是多个进程。
但是他们都有统一父进程,比如我们用cmd 多次来运行同一个py程序,
那么多个py程序的“爹”就是cmd
根据例一可以去cmd,进一步观看
'''
# 列1:
# import os
# import time
#
# print('父进程为',os.getppid())
# print('self是:',os.getpid())
# time.sleep(500)

# 开启子进程的两种方式

# from multiprocessing import Process
# import time
# def task(name):
# print('%s is running'%name)
# time.sleep(3)
# print('%s is done'%name)
# if __name__ == '__main__':
# # 在windows系统之上,开启子进程的操作一定要放到这下面
# # Process(target=task,kwargs={'name':'egon'}) 另一种传值方式
# p=Process(target=task,args=('egon',))
# p.start() # 向操作系统发送请求,操作系统会申请内存空间,然后把父进程的数据拷贝给子进程,作为子进程的初始状态
# print('主进程=====')
#
#
# # 方式二,自定义类
# class MyProcess(Process):
# def __init__(self,name):
# super(MyProcess,self).__init__()
# self.name=name
# def run(self):
# print('%s is running'%self.name)
# time.sleep(3)
# print('%s is done'%self.name)
# if __name__ == '__main__':
# p=MyProcess('yw')
# p.start()
# print('主')


# 进程的内存空间是相互隔离的

# from multiprocessing import Process
# import time
#
# x='我是主进程的'
#
# def task():
# time.sleep(3)
# global x
# x='你猜我是谁'
# print('子进程死了',x)
#
# if __name__ == '__main__':
# p=Process(target=task)
# p.start()
# time.sleep(5) #等到子进程运行结束然后运行
# print(x)


# 父进程等待子进程结束
# join 命令:等到到子线程结束回收他的’尸体‘
# from multiprocessing import Process
# def task():
# global x
# x='你猜我是谁'
# print('子进程死了',x)
#
# if __name__ == '__main__':
# p=Process(target=task)
# p.start()
# p.join()
# print(x)

# 用for 循环开启多个子进程
# from multiprocessing import Process
# import time,random
#
# def task(n):
# print('%s is running '%n)
# time.sleep(n)
# if __name__ == '__main__':
# 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('主',(start_time-time.time()))

# 进程对象的其他属性

from multiprocessing import Process
import time,os

y=100

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

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

p1=Process(target=task,args=(1,),name='进程1')
p1.start()
p1.join()

print('子',p1.pid)
print(p1.name)
print(p1.is_alive())#判断子进程是否还在运行
print('主',os.getpid())
posted @ 2018-04-24 16:27  yangweiwe  阅读(169)  评论(0编辑  收藏  举报