今天就跟大家聊聊有关java线程不安全的原因是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Java可以用来干什么Java主要应用于:1. web开发;2. Android开发;
今天就跟大家聊聊有关java线程不安全的原因是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
Java主要应用于:1. web开发;2. Android开发;3. 客户端开发;4. 网页开发;5. 企业级应用开发;6. Java大数据开发;7.游戏开发等。
1、原因
(1)CPU抢占执行
(2)非原子性
(3)编译器优化(指令重排) 编译器优化在单线程下执行没问题,多线程下优化会发生混乱
(4)内存的不可见性
(5)多个线程修改了同一个变量
2、实例
public class ThreadDemo7 { static class Counter { // 定义的私有变量 private int num = 0; // 执行次数 private final int maxSize = 100000; // num++ public void incrment() { for (int i = 0; i < maxSize; i++) { num++; } } // num-- public void decrment() { for (int i = 0; i < maxSize; i++) { num--; } } public int getNum() { return num; } } public static void main(String[] args) throws InterruptedException { Counter counter = new Counter(); Thread t1 = new Thread(() -> { counter.incrment(); }); t1.start(); Thread t2 = new Thread(() -> { counter.decrment(); }); t2.start(); t1.join(); t2.join(); System.out.println("最终的执行结果:" + counter.getNum()); }}
看完上述内容,你们对java线程不安全的原因是什么有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网精选频道,感谢大家的支持。
--结束END--
本文标题: java线程不安全的原因是什么
本文链接: https://www.lsjlt.com/news/275990.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-02
2024-05-02
2024-05-01
2024-05-01
2024-05-01
2024-05-01
2024-05-01
2024-05-01
2024-05-01
2024-05-01
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0