美文网首页
2.安全性

2.安全性

作者: 炫迈哥 | 来源:发表于2017-04-19 21:40 被阅读0次

java中多线程同步包括:

  • synchronized
  • 显示锁
  • volatile
  • 原子变量

之所以要使用同步,是因为线程间需要 <b>共享</b> <b>可变</b>变量。
要修复这个问题就有三个思路:

  • 不要共享这个变量
  • 把变量改为不可变对象
  • 使用同步

线程安全的概念

当多个线程并行访问某个类时,不管环境采用何种调度方式或者线程以什么样的顺序交替执行,在主调用类中不需要使用任何同步策略,这个类都可以表现出正确的行为,就可以称该类为线程安全类。

tips:无状态类一定是线程安全的(无状态:它既不包含任何域,也不包含对其他任何类的域的引用,计算过程中的临时状态仅存在线程栈上的局部变量中,而且只能由正在执行的线程访问)

sychornized

  • static方法会以class对象作为锁
  • 普通方法以对象本身作为锁

可重入锁

计数器方式,以线程为维度,不是以调用为维度。
如:子类和父类方法都有加锁,子类调用super。xxx时,如果锁不可重复,他永远也等不到那把锁,因为已经被自己持有了。

尽量细化锁粒度,对于长时间io操作的动作不要加锁!!

相关文章

  • 2.安全性

    java中多线程同步包括: synchronized 显示锁 volatile 原子变量 之所以要使用同步,是因为...

  • 2018-11-02 DMG 已损坏

    1.终端输入 sudo spctl --master-disable 2.重新打开安全性与隐私

  • JDK的升级

    目的: 1.简化书写; 2.提高效率; 3.增加安全性;

  • Mac 下安装 Mysql

    mysql安装教程 for mac 1.确认brew可用 2. 安装mysql 3.安全性设置 ...

  • 2021-11-15

    1.参加活动 2.直觉判断及环境的安全性。 3.多参与父亲教育。

  • 如何修改IBM Lotus Notes邮箱密码

    1.登入到邮箱的主页,在菜单栏找到档案并单击一下。 2.单击安全性,使用者安全性。从这里进入修改密码的页面。 3....

  • spring security OAuth2开发App认证框架

    1.基于服务器session的认证 2.前后端分离的web server的认证 2.安全性和用户体验差3.有些前端...

  • 大型网站核心要素

    1. 性能 2. 可用性 3. 伸缩性 4. 可扩展性 5. 安全性

  • 并发编程

    多线程程序解决三个问题 1.安全性:指共享变量 2.活跃性:死锁、活锁、循环等待 2.性能问题 对象内存 1.对象...

  • Android新特性的热点问题

    1.Android5.0 1.全新Matetrial Design设计风格2.支持多种设备3.改进安全性个人识别解...

网友评论

      本文标题:2.安全性

      本文链接:https://www.haomeiwen.com/subject/jcydottx.html