当前位置:首页 » 编程语言 » java可见性

java可见性

发布时间: 2025-01-01 16:48:14

java中如何保证线程安全性

线程安全主要在体现在这三个方面:
1.原子性:提供互斥访问,同一时刻只能有一个线程对数据进行操作,(atomic,synchronized);
2.可见性:一个线程对主内存的修改可以及时地被其他线程看到,(synchronized,volatile);
3.有序性:一个线程观察其他线程中的指令执行顺序,由于指令重排序,该观察结果一般杂乱无序,(happens-before原则)。
所以想保证线性安全的话只要从这三个方面入手就可以了。

⑵ java 程序中怎么保证多线程的运行安全

并发编程三要素(线程的安全性问题体现在):

原子性:原子,即一个不可再被分割的颗粒。原子性指的是一个或多个操作要么 全部执行成功要么全部执行失败。

可见性:一个线程对共享变量的修改,另一个线程能够立刻看到。 (synchronized,volatile)

有序性:程序执行的顺序按照代码的先后顺序执行。(处理器可能会对指令进行 重排序)

出现线程安全问题的原因:

  • 线程切换带来的原子性问题

  • 缓存导致的可见性问题

  • 编译优化带来的有序性问题

  • 解决办法:

  • JDK Atomic开头的原子类、synchronized、LOCK,可以解决原子性问题

  • synchronized、volatile、LOCK,可以解决可见性问题

  • Happens-Before 规则可以解决有序性问题

热点内容
数据库封锁 发布:2025-01-04 12:27:34 浏览:841
应用全编译APP 发布:2025-01-04 12:21:12 浏览:71
对称算法非对称算法 发布:2025-01-04 12:19:18 浏览:522
安卓手机怎么多开分屏 发布:2025-01-04 12:14:02 浏览:685
地震波数据库 发布:2025-01-04 12:12:40 浏览:116
python安装bs4 发布:2025-01-04 12:11:13 浏览:582
信雅达初始密码是多少 发布:2025-01-04 12:02:07 浏览:536
命令行编译vc工程 发布:2025-01-04 12:01:59 浏览:123
我的世界大橙子18领域生存服务器 发布:2025-01-04 11:55:29 浏览:776
安卓听书软件哪个资源最多 发布:2025-01-04 11:30:43 浏览:167