JMM&类夹在机制
2020-10-10 17:00:11 1 举报
JMM&Spring Bean生命周期
作者其他创作
大纲/内容
assign
调用shutdown方法
N
if(!flag)
Thread2
Thread
ThreadLocalMap
ThreadLocal 2
工作内存
Shutdown
flag=false
flag=true
Thread1if(!flag)
Thread1
Terminated
write
CPU Core2
将Bean的ID传递给setBeanName方法
Y
CPU总线嗅探机制(监听)
ThreadLocal 3
read
use
load
ThreadLocal N
早期操作总线加锁机制——一个线程在读取数据前会对改变量加锁,直到此线程将工作内存中的数据中的数据写入到主内存后会进行解锁操作此时会导致多线程变量的读写操作变成了串行
调用shutdowNow
Stop
CPU Core1
实现BeanNameAware接口
调用setBeanFactory方法
实现BeanFactoryAware接口
unlock
实例化Bean
Thread2flag=true
ThreadLocal 1
Running
是否实现ApplicationContextAware接口
线程池内执行的任务为空
等待队列为空,线程池内执行的任务也为空
lock
Tidying
触发terminated钩子函数
将配置文件中的值或Bean的引用注入到Bean对应的属性中
总线(MESI缓存一致性协议)(write操作在经过总线时如果发现变量值有修改则通过总线嗅探机制淘汰其他线程工作内存中的变量的值)
0 条评论
下一页