在jvm内存模型里,一个线程的执行过程,是首先分配一个线程栈,每个线程都有一个线程栈. 那么线程栈是怎么运行的? 在线程执行一个方法的时候,会将当前方法里面的数据封装成一个栈帧,压入线程栈中执行. 如果在执行过程中,方法里又调用了别的方法,那么再把被调用方法包装成一个栈帧, 压入线程栈栈顶,执行完后,弹出去. 整个方法执行完毕,线程栈销毁. ThreadLocal就是在整个压栈过程中,在当前线程的内部,保存了想保存的东西.
在jvm内存模型里,一个线程的执行过程,是首先分配一个线程栈,每个线程都有一个线程栈. 那么线程栈是怎么运行的? 在线程执行一个方法的时候,会将当前方法里面的数据封装成一个栈帧,压入线程栈中执行. 如果在执行过程中,方法里又调用了别的方法,那么再把被调用方法包装成一个栈帧, 压入线程栈栈顶,执行完后,弹出去. 整个方法执行完毕,线程栈销毁. ThreadLocal就是在整个压栈过程中,在当前线程的内部,保存了想保存的东西.