java线程不安全的原因是什么

今天就跟大家聊聊有关java线程不安全的原因是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

创新互联专注于镇坪企业网站建设,成都响应式网站建设公司,商城系统网站开发。镇坪网站建设公司,为镇坪等地区提供建站服务。全流程按需定制,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务

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线程不安全的原因是什么有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注创新互联行业资讯频道,感谢大家的支持。


文章题目:java线程不安全的原因是什么
分享网址:http://bzwzjz.com/article/ghphoo.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 温江网站设计 成都网站建设公司 定制网站建设多少钱 手机网站制作 四川成都网站设计 网站建设推广 成都网站建设 成都网站制作 教育网站设计方案 成都网站制作 成都网站设计 成都响应式网站建设 成都企业网站设计 营销网站建设 网站制作公司 成都网站建设 高端品牌网站建设 企业网站建设公司 成都网站设计 移动手机网站制作 成都网站设计 成都网站设计