当前位置: 首页 > news >正文

【Java to Architect】synchronized保证内存可见性 demo的另一种解法

在这篇日志中,作者详细介绍了synchronized关键字,在文中有一个demo,是用synchronized保证内存可见性的解法。
文末让读者想另一种demo解法,这里是我的解法:

public class SynchronizedDemo implements Runnable {
    private static int count = 0;
    String lock = "";
    public static void main(String[] args) {
        for (int i = 0; i < 10; i++) {
            Thread thread = new Thread(new SynchronizedDemo());
            thread.start();
        }
        try {
            Thread.sleep(500);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("result: " + count);
    }

    @Override
    public void run() {
        synchronized(lock) {
            for (int i = 0; i < 1000000; i++) {
                count++;
            }
        }
    }
}

相关文章:

  • 利用位屏蔽和动态规划解决最小代价任务分配问题 Bitmasking Dynamic Programming
  • 算法:回溯法(backtracking)解决寻找给定字符串的所有排序(permutations)问题
  • 算法: 动态规划 寻找2D矩阵中到达某一坐标的最小代价路径
  • 算法:动态规划 寻找2D矩阵中到达某一坐标的可能路径总数
  • 算法:动态规划 寻找2D矩阵中到达某一坐标的可能路径总数进阶版(添加路障)
  • 算法: 动态规划,二维矩阵代价最值进阶版 两条行进路径,一次相交,求解最大代价
  • Programming Languages And Lambda calculi 1.1 定义集合
  • 算法: 动态规划 编辑距离 Edit Distance / Levenshtein Distance
  • 【Salesforce】【Apex】Trigger中不通过soql查询记录类型的开发名称
  • 【Programming Languages And Lambda calculi】 1.2 ~ 1.3 关系、赋值与关系
  • 【Programming Languages And Lambda calculi】 1.4 有向赋值
  • 【算法】 动态规划 基础题库 1-7 python实现
  • 【Programming Languages And Lambda calculi】 1.5 ~ 1.7 上下文规约 赋值函数 符号摘要
  • 【Programming Languages And Lambda calculi】第二章 结构归纳法 2.1 基础
  • 【Programming Languages And Lambda calculi】2.2 ~ 2.3 定义中的省略,证明树中的归纳
  • [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
  • [笔记] php常见简单功能及函数
  • 《Java编程思想》读书笔记-对象导论
  • GitUp, 你不可错过的秀外慧中的git工具
  • golang中接口赋值与方法集
  • IDEA常用插件整理
  • JavaScript设计模式之工厂模式
  • js
  • Linux gpio口使用方法
  • Linux Process Manage
  • React-Native - 收藏集 - 掘金
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 马上搞懂 GeoJSON
  • 深度学习中的信息论知识详解
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • #微信小程序:微信小程序常见的配置传值
  • (¥1011)-(一千零一拾一元整)输出
  • (10)STL算法之搜索(二) 二分查找
  • (Forward) Music Player: From UI Proposal to Code
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (八)c52学习之旅-中断实验
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (译) 理解 Elixir 中的宏 Macro, 第四部分:深入化
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • .aanva
  • .bat批处理(四):路径相关%cd%和%~dp0的区别
  • .gitignore
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET CORE 第一节 创建基本的 asp.net core
  • .Net IE10 _doPostBack 未定义
  • .NET MAUI学习笔记——2.构建第一个程序_初级篇
  • .NET NPOI导出Excel详解
  • .net实现头像缩放截取功能 -----转载自accp教程网
  • [ CTF ]【天格】战队WriteUp- 2022年第三届“网鼎杯”网络安全大赛(青龙组)
  • [Angular 基础] - 数据绑定(databinding)
  • [C/C++] C/C++中数字与字符串之间的转换
  • [CDOJ 838]母仪天下 【线段树手速练习 15分钟内敲完算合格】