11 2020 档案
摘要:1.死锁问题 现实世界里,账户转账操作是支持并发的,而且绝对是真正的并行,银行所有的窗口都可以做转账操作。 只要我们能仿照现实世界做转账操作,串行的问题就解决了。 我们试想在古代,没有信息化,账户的存在形式真的就是一个账本,而且每个账户都有一个账本,这些账本都统一存放在文件架上。银行柜员在给我们做转
阅读全文
摘要:1.受保护资源和锁之间合理的关联关系应该是 N:1 的关系 可以用一把锁保护多个资源 不能用多把锁保护一个资源
阅读全文
摘要:1.Synchronized关键字使用 class X { // 修饰非静态方法 synchronized void foo() { // 临界区 } // 修饰静态方法 synchronized static void bar() { // 临界区 } // 修饰代码块 Object obj =
阅读全文
摘要:1.解决并发编程中的可见性问题 volatile 代表不使用cpu缓存,修改后的数据,将直接刷到内存中,被volatile修饰的变量,读取的时候,也是从内存中读取,不从cpu缓存中读取 上代码 // 以下代码来源于【参考1】 class VolatileExample { int x = 0; vo
阅读全文
摘要:# 修饰属性,方法,类 ## 1.修饰属性 属性只能被赋值一次 基本类型:值不能改变 引用类型:引用不可以被修改 ## 2.修饰方法 表示方法不可以被重写,但可以被子类访问 ## 3.修饰类 final修饰类即表示此类已经是“最后的、最终的”含义。因此,用final修饰的类不能被继承,即不能拥有自己
阅读全文
摘要:1. -XX:MaxPermSize=256m -XX:MaxPermSize=128M JVM最大允许分配的非堆内存,按需分配 2. java.awt.headless Headless模式是系统的一种配置模式。在该模式下,系统缺少了显示设备、键盘或鼠标 3.-Dsun.net.client.de
阅读全文