颗粒度越细,表示细节越详尽,越有助于了解事情的全貌
颗粒度越粗,表示细节越少,更多的是抽象概括。

java多线程中就有颗粒度

/*
     * 小结:
     * 同步方法直接在方法上加synchronized实现加锁,同步代码块则在方法内部加锁,很明显,同步方法锁的范
     * 围比较大,而同步代码块范围要小点,一般同步的范围越大,性能就越差,一般需要加锁进行同步的时候,肯
     * 定是范围越小越好,这样性能更好
     *
     * 同步代码块可以用更细粒度的控制锁
     *
     * 使用同步块,可以减小线程同步的粒度,线程同步的粒度越小越好,即线程同步的代码块越小越好
     */

MoneyBox类(储钱罐类)

package com.demo.threadmessage1;//线程间通信的案例,主要是wait()、notify()、notifyAll()这3个函数,这3个函数都是Object类的方法
//sleep()是Thread类的方法
//存钱罐类
public class MoneyBox {//存钱罐中的余额private double money;public double getMoney() {return money;}// 构造函数 /构造方法/构造器public MoneyBox(double money) {this.money = money;}//这是存钱的方法,加上synchronized(同步)关键字,写成同步块public void add(double inMoney, String threadName, int number) {try {//故意让当前线程睡眠会以使别的线程操作它(为了制造张无忌存钱的速度没有赵敏取钱的速度快)Thread.sleep(80);} catch (InterruptedException e) {e.printStackTrace();}//使用同步块,可以减小线程同步的粒度,线程同步的粒度越小越好,即线程同步的代码块越小越好/** 同步代码块可以用更细粒度的控制锁,同步方法锁的范围比较大,而同步代码块范围要小点,一般同步的范围越* 大,性能就越差,一般需要加锁进行同步的时候,肯定是范围越小越好,这样性能更好*/synchronized(this){money += inMoney;System.out.println("-------" + threadName + "第" + number + "次存了" + inMoney + "元,现在存钱罐中的余额=" + money);notifyAll();// 唤醒/通知前期挂起的所有线程}}//这是取钱的方法,加上synchronized(同步)关键字,写成同步方法public synchronized void get(double outMoney, String threadName, int number) {while (money < outMoney) {//说明要取的金额超过了存钱罐中的余额System.out.println("######" + threadName  + "第" + number + "次取钱,打算取" + outMoney + "元,但是现在存钱罐中的余额=" + money + ",要取的金额超过了存钱罐中的余额,请你等待......");try {wait();//让当前线程处于等待状态,即线程挂起(线程处于挂起状态)System.out.println("######" + threadName  + "第" + number + "次取钱时的等待结束......,继续第" + number + "次取钱");} catch (InterruptedException e) {e.printStackTrace();}}money -= outMoney;System.out.println("$$$$$$$" + threadName + "第" + number + "次取了" + outMoney + "元,现在存钱罐中的余额=" + money);}@Overridepublic String toString() {return "---------------我是存钱罐,我现在的余额=" + money + "---------------";}/** 小结:* 同步方法直接在方法上加synchronized实现加锁,同步代码块则在方法内部加锁,很明显,同步方法锁的范* 围比较大,而同步代码块范围要小点,一般同步的范围越大,性能就越差,一般需要加锁进行同步的时候,肯* 定是范围越小越好,这样性能更好* * 同步代码块可以用更细粒度的控制锁* * 使用同步块,可以减小线程同步的粒度,线程同步的粒度越小越好,即线程同步的代码块越小越好    */}

https://zhuanlan.zhihu.com/p/65220106

计算机中的颗粒度(granularity)什么是颗粒度?相关推荐

  1. 用计算机模拟宇宙,计算机中的宇宙

    原标题:计算机中的宇宙 幻想 曾凭借科幻小说<三体>夺得"雨果奖"最佳长篇小说奖的科幻作家刘慈欣,早年写过一篇发人深省的短篇作品:<镜子>.文中主要讲述了一 ...

  2. Knowledge Point 20180305 数据在计算机中的表示

    计算机发明的初衷就是用于帮助我们加工和处理数据,虽然时至今天计算机看起来无所不能,但它根本上还是在做数据的加工和处理,数据的机器层次表示将直接影响到计算机的结构和性能. 在计算机中,采用数字化方式来表 ...

  3. 计算机函数模式的用处是啥,请问怎么理解计算机中的函数?

    你的理解有点外行看热闹的意思,呵呵. 代码本身就是抽象的,所以"计算机中的函数是一种对代码进行抽象的方式"不能说不对,但是也和没说一样.至于"我们使用抽象出来的函数,而不 ...

  4. 中断原理在计算机中的应用,计算机组成原理期末考试简答题重点

    6.DMA方式和程序中断方式比较有什么不同? DMA:采用内在和外设直接数据交换的方式,只有当有一段数据传送时才会请求CPU中断,减少了CPU的负担. 程序中断:只适用于简单的少量外设的计算机系统,会 ...

  5. C语言中浮点型在计算机中的存储

    一 . 浮点型的存储 在十进制中我们都学习过科学计数法,比如31.4可以用科学计数法表示就是3.14*10^1.浮点型同样是采取科学计数法进行表示的.在计算机中,以二进制数存储,如1011.10用科学 ...

  6. C语言中整型在计算机中的存储

    一 . 整型的表示 1.字面值后面加上L(l)表示long长整型 2.字面值后面加上U(u)表示usigned整型值 3.十进制123  ... 4.八进制,以0开头,如0123,0754  ... ...

  7. C语言中字符型在计算机中的存储

    一. 字符型的分类和表示范围 char:是有符号还是无符号数视编译器而定,一般为有符号数,下文把它全部当成有符号数进行讨论 表示范围:32位和64位机器上均是一个字节,所以是八个bit位,最高位为符号 ...

  8. C语言中整型浮点型在计算机中的存储

    第一次写博客,遣词造句有点菜,算是一次简单梳理,慢慢学习人家的博客风格,随着学习的深入再做修改. 本次学习的是C语言在VS下的编译调试,对于初学者两说,首先说一下如何监控变量,以及监控变量在内存中的存 ...

  9. 计算机中音乐设备数字接口,一种计算机用声卡封存装置的制作方法

    本实用新型涉及计算机声卡领域,尤其涉及一种计算机用声卡封存装置. 背景技术: 声卡的基本功能是把来自话筒.磁带.光盘的原始声音信号加以转换,输出到耳机.扬声器.扩音机.录音机等声响设备,或通过音乐设备 ...

  10. 探索“小数”在计算机中的存储

    本文介绍了小数在计算机中的存储方式,第一种为定点方式,这种方式很少遇到,但在Matlab中有涉及,见图文<Matlab与线性代数–显示格式的设置>.第二种为浮点方式,一个浮点数由阶码和尾数 ...

最新文章

  1. 一文概览 CVPR2021 最新18篇 Oral 论文
  2. Codeforces 724 G Xor-matic Number of the Graph 线性基+DFS
  3. java数据类型代表价格_解读Java数据及数据类型内幕
  4. Spring-AOP 通过配置文件实现 异常抛出增强
  5. rsync配置与报错总结
  6. H.264视频RTP负载格式/NALU的类型
  7. 学习如何写PHP MVC框架(1) -- 路由
  8. 关联分析:FP-Growth算法
  9. android.mk 模块编译,通过Android.mk添加一个编译模块到系统中的顺序如下
  10. haskell程序设计语言
  11. e.preventdefault() 别滥用
  12. PHP 8.1性能基准测试结果出炉,比7.0版本提升44%
  13. win10安装navisworks失败,怎么强力卸载删除注册表并重新安装
  14. iphone 越狱需要安装的包
  15. 可以自己diy壁纸的app_有什么APP可以做壁纸?
  16. 24c02读程序C语言详解,24C02读写操作程序(C语言)
  17. 计算机专业的学习方法
  18. prototype原型练习 前端校招面试
  19. 【技术贴】聊聊ArcGIS Runtime for Xamarin
  20. C语言函数没有return时会返回什么

热门文章

  1. Linu修改系统时间
  2. 3分钟tips:高斯分布和高斯积分的关系
  3. 时间序列分析之误差修正模型(ECM)
  4. Persistent Bugger 实践练习
  5. 突发!阿里巴巴大调整
  6. 阿里云服务器上的数据是如何确保安全的
  7. 应用数理统计之概率论复习与补充
  8. 另类数据的崛起——CnOpenData在行动(上)
  9. 建立积分兑换商城的意义
  10. Particle Filtering粒子滤波