线程:启动速度快
是操作系统能够进行运算调度的最小单位,是一串指令的集合
进程:启动速度慢
一个进程操作的的实例被称为进程,是资源的集合
要操纵CPU,必须建立一个进程。
线程启动速度快,进程启动速度慢,运行速度俩者没有可比性。
区别:
all the threads in a process have the same view of the memory
所有在同一个进程里的线程是共享同一块内存空间的
线程共享内存空间,进程的内存是独立的。
同一个进程的线程之间可以直接交流。俩个进程想通信,必须通过一个中间代理来实现。
新的线程容易创建,新的进程必须克隆一次父进程
一个线程可以控制和操作同一进程里的其它线程。但是进程只能操作子进程。
对于主线程的修改有可能会影响其它线程的运行,但是对父进程的修改不会影响子进程。
简单多线程的例子:
import threading
def run(n):
print("task",n)
t1 = threading.Thread(target = run,args = ("t1",))
t2 = threading.Thread(target = run,args = ("t2",))
t1.start()
t2.start()
守护线程
如何把子线程变成守护线程: 在线程启动代码前加一句代码
子线程名.setDaemon(True)