1、访问共享变量或资源,比如对象属性,静态变量,共享缓存,数据库等
2、所有依赖时序的操作
read-modfiy-write
多线程带来的性能问题
1、上下文切换
保存现场
缓存开销,缓存失效
2、内存同步
死锁
一个线程拿到锁1后,又需要拿到锁2
另一个线程拿到锁2后又需要拿到锁1
互相等待对方释放
锁只能被一个人拿到,一个人却可以拿多把锁
发布和私有变量逸出
私有变量逸出
构造函数未初始化完毕就把this赋值给了外部变量
构造函数中运行线程
注册监听器
1、访问共享变量或资源,比如对象属性,静态变量,共享缓存,数据库等
2、所有依赖时序的操作
read-modfiy-write
1、上下文切换
保存现场
缓存开销,缓存失效
2、内存同步
一个线程拿到锁1后,又需要拿到锁2
另一个线程拿到锁2后又需要拿到锁1
互相等待对方释放
锁只能被一个人拿到,一个人却可以拿多把锁
私有变量逸出
构造函数未初始化完毕就把this赋值给了外部变量
构造函数中运行线程
注册监听器
本文标题:线程安全问题
本文链接:https://www.haomeiwen.com/subject/pxtefktx.html
网友评论