进程:
狭义:进程就是正在运行的程序
广义:它是操作系统进行资源分配的基本单位,也就是说每启动一个进程,操作系统都会给 其分配一定的运行资源(内存资源)保证进程的运行
程序:
程序时一个没有生命的实体,等待处理器赋予生命,一旦程序有了生命就变成了进程
进程与程序的区别
1.程序是指令和数据的有序集合,其本身没有任何含义,是一个静态的资源,进程是程序在 系统中的依次执行过程
2.程序可以作为软件长期存在,进程是由一定生命周期
进程的状态
进程的三种状态:
就绪态:运行的条件都易筋经满足正在等待CPU执行
执行态:CPU正在执行其功能
等待态:等待某些条件满足
并行:同一时刻,多个任务同时执行 例:12点放学吃饭
并发:同一时间(时间段),多个任务同时执行 例:12点到1:40是吃饭时间
并发与并行的区别:
微观:并行是指同一时间点上,多个任务真正的同时执行
宏观上:并发市值在一个时间段内,多个任务走走停停
创建进程
- #创建一个进程
- import time
-
- #进程的导包
- import multiprocessing
-
- def test1():
- while True:
- print("1---------")
- time.sleep(1)
-
- def test2():
- while True:
- print("2------")
- time.sleep(1)
-
- def main():
- #分别创建test1和test2个进程
- p1 = multiprocessing.Process(target=test1)
- p2 = multiprocessing.Process(target=test2)
- #启动 p1 和 p2
- p1.start()
- p2.start()
-
- #程序入口
- if __name__ == '__main__':
- main()
- import threading, time
-
- def fun1():
- for i in range(5):
- print("唱歌...")
- time.sleep(1) # 休眠1s
-
-
- def fun2():
- for i in range(5):
- print("跳舞...")
- time.sleep(1) # 休眠1s
-
-
- if __name__ == "__main__":
- # t1 t2 变量名
- t1 = threading.Thread(target=fun1) # 创建线程1 执行fun1
- t2 = threading.Thread(target=fun2) # 创建线程2 执行fun2
- t1.start() # 启动2个线程
- t2.start()
- print("主线程结束")