进程与多线程
1. 进程
1.1 什么是进程
- 进程是操作系统分配内存资源的最小单位
- 一个进程之内会默认有一个线程
- 进程是Python程序中执行多任务的一种方式
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/3e1879eb2241f4a7121fb63b8c13fb21.png)
1.2 多进程的使用
- 进程创建的三步:
- 导入包
import multiprocessing
- 创建进程
- 启动进程
start
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/86df52770fd590ee1796319396d74dd4.png)
import multiprocessing
import time
def dance():
for item in range(1, 5):
print("跳舞...")
time.sleep(0.2)
pass
pass
def sing():
for item in range(1, 5):
print("唱歌...")
time.sleep(0.2)
pass
pass
if __name__ == "__main__":
dance_process = multiprocessing.Process(target=dance)
dance_process.start()
sing()
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/4af6a73131039fa29ca6d47717819ca7.png)
import multiprocessing
import time
def dance():
for item in range(1, 5):
print("跳舞...")
time.sleep(0.2)
pass
pass
def sing():
for item in range(1, 5):
print("唱歌...")
time.sleep(0.2)
pass
pass
if __name__ == "__main__":
dance_process = multiprocessing.Process(target=dance)
sing_process = multiprocessing.Process(target=sing)
dance_process.start()
sing_process.start()
1.3 获取进程的编号
- 获取主进程和子进程编号
os.getpid()
- 在子进程内获取他的父进程编号
os.getppid()
- 通过进程编号停止进程
os.kill(process_id, 9)
import multiprocessing
import time
import os
def dance():
dance_process_id = os.getpid()
print("dance进程编号: ", dance_process_id, multiprocessing.current_process)
dance_process_parent_id = os.getppid()
print("dance父进程编号: ",<