如图所示,栈空间是每个线程私有的,其中每个方法有一个栈帧,里面保存了局部变量 返回地址等信息。
如果是多线程,每个线程都会有一个栈空间。
多线程切换的时候需要保存局部变量、当前的地址等信息。
线程上下文切换的时机:
时间片用完
调用api主动切换
为什么进程切换要比线程切换开销小呢?
因为不同进程不在同一个内存空间,所以当切换后tlb中的信息大部分会失效,就会访存导致变慢
如图所示,栈空间是每个线程私有的,其中每个方法有一个栈帧,里面保存了局部变量 返回地址等信息。
如果是多线程,每个线程都会有一个栈空间。
多线程切换的时候需要保存局部变量、当前的地址等信息。
线程上下文切换的时机:
时间片用完
调用api主动切换
为什么进程切换要比线程切换开销小呢?
因为不同进程不在同一个内存空间,所以当切换后tlb中的信息大部分会失效,就会访存导致变慢