上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 33 下一页
摘要: 1、初步认识 观察者模式的定义: 在对象之间定义了一对多的依赖,当一个对象改变状态,依赖它的对象会收到通知并自动更新。 大白话: 其实就是发布订阅模式,发布者发布信息,订阅者获取信息,订阅了就能收到信息,没订阅就收不到信息。 介绍 意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 阅读全文
posted @ 2019-04-14 21:20 twoheads 阅读(296) 评论(0) 推荐(0) 编辑
摘要: 概念 快照读 读取的是记录数据的可见版本(可能是过期的数据),不用加锁 当前读 读取的是记录数据的最新版本,并且当前读返回的记录都会加上锁,保证其他事务不会再并发的修改这条记录 概念说的比较虚,也不好理解,接着举一个例子吧,假设你开启了两个事务,分别是A和B,这里有个张表,user表,里面有四条数据 阅读全文
posted @ 2019-04-14 01:55 twoheads 阅读(1429) 评论(1) 推荐(0) 编辑
摘要: Mysql加锁过程详解(1)-基本知识 Mysql加锁过程详解(2)-关于mysql 幻读理解 Mysql加锁过程详解(3)-关于mysql 幻读理解 Mysql加锁过程详解(4)-select for update/lock in share mode 对事务并发性影响 Mysql加锁过程详解(5 阅读全文
posted @ 2019-04-14 01:53 twoheads 阅读(727) 评论(0) 推荐(0) 编辑
摘要: MySQL通过MVCC(解决读写并发问题)和间隙锁(解决写写并发问题)来解决幻读 MySQL InnoDB事务的隔离级别有四级,默认是“可重复读”(REPEATABLE READ)。 未提交读(READ UNCOMMITTED)。另一个事务修改了数据,但尚未提交,而本事务中的SELECT会读到这些未 阅读全文
posted @ 2019-04-13 21:33 twoheads 阅读(13202) 评论(3) 推荐(0) 编辑
摘要: 最近通过《高性能MySQL》一书学习MySQL方面的知识,在看到书中所讲InnoDB-MVCC部分的时候,有一种强烈的感觉,这不就是乐观锁吗(入门级小学徒的疑惑脸)?当下便去网上以各种方式查找阅读MVCC和乐观锁相关的博客,发现大部分的博客对于这两者之间的关系都只字不提,提了的也是众说纷纭,关于两者 阅读全文
posted @ 2019-04-13 20:51 twoheads 阅读(1134) 评论(1) 推荐(0) 编辑
摘要: 委托Delegate是一个类,定义了方法的类型, 使得可以将方法当做另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大佬使用If-Else(Switch)语句,同时使得程序具有更好的可扩展性。 Invoke : 委托回调函数时候的一种同步调用方式. BeginInvoke 阅读全文
posted @ 2019-04-12 11:23 twoheads 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 我之前书上看到的说法是:Vector是相对线程安全,CopyOnWriteArrayList是绝对线程安全 这种说法其实有些问题,CopyOnWriteArrayList在某些场景下还是会报错的 CopyOnWriteArrayList解决了:1.多线程一边读一边写。2.多线程迭代时修改抛出并发修改 阅读全文
posted @ 2019-04-11 10:45 twoheads 阅读(2323) 评论(1) 推荐(1) 编辑
摘要: 打印gc日志 1.对指定运行程序输出GC日志: 点击edit configurations... 在vm options处加入-XX:+PrintGCDetails 测试:代码调用system.gc后输出以下内容: 2.修改idea32/64.exe.vmoptions 文件 在idea的安装目录下 阅读全文
posted @ 2019-04-10 15:16 twoheads 阅读(8059) 评论(0) 推荐(2) 编辑
摘要: jdk1.7自带jvisualvm可以对java应用进行监控。其中有个插件visualgc可以查看jvm垃圾回收的具体信息。安装插件的步骤是打开jvisualvm,点击工具->插件,在可用插件列表找到Visual GC进行安装,结果提示无法安装。在浏览器打开链接访问一下,发现java.net网站已经 阅读全文
posted @ 2019-04-10 14:38 twoheads 阅读(3064) 评论(0) 推荐(0) 编辑
摘要: 调优工具 启动JDK自带的工具jvisualvm 首先到JDK安装目录/bin目录下,双击jvisualvm.exe文件启动 堆配置 说明: 1、一般初始堆和最大堆设置一样,因为:现在内存不是什么稀缺的资源,但是如果不一样,从初始堆到最大堆的过程会有一定的性能开销,所以一般设置为初始堆和最大堆一样。 阅读全文
posted @ 2019-04-10 14:12 twoheads 阅读(271) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 33 下一页