简单示例:
import threading
import time
import multiprocessing
def task1():
while True:
print("---1----")
time.sleep(1)
def task2():
while True:
print("----2-----")
time.sleep(1)
def main():
# # 线程的方式实现多任务
# th_task1 = threading.Thread(target=task1, name="task1")
# th_task2 = threading.Thread(target=task2, name="task2")
# th_task1.start()
# th_task2.start()
# 进程的方式实现多任务
p1 = multiprocessing.Process(target=task1)
p2 = multiprocessing.Process(target=task2)
p1.start()
p2.start()
if __name__ == "__main__":
main()
(图片来源https://www.bilibili.com/video/av64065585/?p=39)
从上图可以看出,用多进程的方式实现多任务,由于创建一个进程就是对原有的一份拷贝,而创建的进程可能就执行一点点东西,所以会造成资源浪费。
(补充:进程是资源分配的单位;线程是操作系统调度的单位。)