并发编程之进程理论及应用等相关内容-36

1.进程理论

#1、什么是进程
进程是一个程序运行的过程

#2、什么是程序
程序就是一堆代码文件

#3、串行、并发、并行
串行:多个任务依次运行,一个运行完毕再运行下一个
并行:多个任务是真的在同时运行,只有多个cpu才有并行的概念
并发:多个任务看起来是在同时运行

#4、进程的创建
windows:CreateProcess
linux:fork

#5、进程的终止
1. 正常退出
5. 被其他进程杀死(taskill /F /PID 3333)

#6、程序运行的三种状态
运行态
就绪态
阻塞态

优化程序效率的核心法则:降低IO操作(硬盘IO、网络IO)

内存》本地硬盘-》网络IO

#7、
进程运行的三种状态:(运行态、就绪态)非阻塞态、阻塞态
调用任务的两种方式:同步调用、异步调用

2.进程应用

# import os
# import time
#
# print(os.getpid())
# time.sleep(1000)

# 开启进程的方式一:
# import time
# import os
# from multiprocessing import Process
#
#
# def task(n, tag):
#     print("%s is running" % tag)
#     time.sleep(3)
#     print("%s is done" % tag)
#
#
# if __name__ == '__main__':
#     p1 = Process(target=task, args=(5, "子进程1"))
#     p2 = Process(target=task, args=(3, "子进程2"))
#     p3 = Process(target=task, args=(2, "子进程3"))
#     p1.start()
#     p2.start()
#     p3.start()
#     print("主:%s。。。" % os.getpid())

# 开启进程的方式二:
import time
import os
from multiprocessing import Process

class Myprocess(Process):
   def __init__(self,tag):
       super().__init__()
       self.tag = tag

   def run(self) -> None:
       print("%s is running" % self.tag)
       time.sleep(3)
       print("%s is done" % self.tag)




if __name__ == '__main__':
   p1 = Myprocess("进程1")
   p2 = Myprocess("进程2")
   p3 = Myprocess("进程3")
   p1.start()  # p1.run()
   p2.start()  # p2.run()
   p3.start()  # p3.run()
   print("主:%s。。。" % os.getpid())

3.join方法

import time
import os
from multiprocessing import Process


def task(n, tag):
   print("%s is running" % tag)
   time.sleep(n)
   print("%s is done" % tag)


if __name__ == '__main__':
   p1 = Process(target=task, args=(3, "子进程1"))
   p2 = Process(target=task, args=(4, "子进程2"))
   p3 = Process(target=task, args=(5, "子进程3"))

   # start=time.time()
   p1.start()
   p2.start()
   p3.start()

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

   print(p1.pid)
   print(p2.pid)
   print(p3.pid)


   # print(time.time() - start)
   print("主:%s。。。" % os.getpid())

 

posted @ 2020-08-20 16:34  投降输一半!  阅读(177)  评论(0编辑  收藏  举报