进程:
狭义:进程就是正在运行的程序
广义:它是操作系统进行资源分配的基本单位,也就是说每启动一个进程,操作系统都会给 其分配一定的运行资源(内存资源)保证进程的运行
程序:
程序时一个没有生命的实体,等待处理器赋予生命,一旦程序有了生命就变成了进程
进程与程序的区别
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("主线程结束")