进程和线程都是实现多任务的方式。
代码是死的,存放在硬盘上
只要程序运行起来,就已经把代码加载到内存当中(即为它分配了一片内存),这就是进程,即有资源的东西就是进程。
进程中必有一个线程(可以理解为一个箭头),指向哪,程序就运行到哪。进程是资源分配的单位,只要运行,操作系统就给他资源,线程是进程里面真正执行代码的东西,是cpu调度的单位
在一个进程里面,开设多个线程(即多个箭头),调度分配到该进程的内存,执行不同的任务。
如果多个线程执行同一个函数的话,各自之间不会产生影响,各是各的。
线程子类的定义方法如图,进程子类以及进程池的定义方法和线程类似,实例化执行2次,就相当于开了两个线程
多线程对全局变量共享,多进程对全局变量各人是各人,因为进程之间不共享数据,就诞生了进程通信(队列Queue)
正因为多线程共享全局变量,在处理数据时容易产生冲突引发数据错乱问题。(全局变量可以当作参数传到局部,也可以用global声明全局变量)