1.线程和进程有什么不同?
进程:1>系统进行资源分配和调度的一个独立单元
2>进程间不共享全局变量,需要进行进程间的通信
3>进程在运行过程中为独立的内存单元
线程:1>进程的一个实体,是CPU调度和分派的基本单位
2>同时对一个全局变量进行修改,容易混乱(不一定执行完就换线程)
3>线程依赖进程的存在,线程并发性高,占用资源比进程少
2.以单核cpu为例,它是怎样完成多任务的?
采用并发的方式交替执行多个任务
3.程序和进程有什么区别?
简而言之,代码没有被运行之前是一个程序,当运行起来后就能成为进程
4.getpid、getppid的作用是什么?
getpid 获取当前进程的进程号
getppid 获取当前进程的父进程的进程号
5.创建出来的多个子进程,同时对一个相同名字的全局变量操作时会出错么?为什么?
不会出错,
因为进程之间的资源是不共享的,各自拥有各自的一份该变量,操作互不影响
6.创建出来的子进程和父进程到底是谁先执行?为什么?
不确定
因为多任务中,谁先被执行,是由cpu的调度算法来决定的,cpu会保证每个进程都能被平均的执行一段时间,一次你看上去会是随机的
7.multiprocessing模块的目的是什么?
使用multiprocessing模块中的Process创建一个子进程
8.怎样用multiprocessing模块中的Process创建一个子进程?请写出基本代码
from multiprocessing import Process
def mission():
for i in range(5):
print(i)
if __name__ == "__main__":
p = Process(target=mission) # 创建进程实例
p.start() # 启动子进程
p.join() # 让父进程等待
9.multiprocessing模块中的Process创建了一个子进程后,怎样让子进程开始执行?
调用start方法
10.如果一个程序需要同时执行多个任务,那么一般会怎么做?
使用多进程或者多线程来实现