04 2017 档案

摘要:final也是并发中一个常用的tips。JMM中对final提供的重排序规则如下: 1、当在constructor中对final变量写入之前,不会将构造对象的引用给出去。 2、读一个包含final域的对象的引用 happens before 后续对这个final域的读 关于(1),是说当在const 阅读全文
posted @ 2017-04-27 09:16 Mr.do 阅读(238) 评论(0) 推荐(0) 编辑
摘要:哈哈 阅读全文
posted @ 2017-04-20 20:51 Mr.do 阅读(156) 评论(0) 推荐(0) 编辑
摘要:一、锁的语义 锁机制是Java中最重要的同步机制,其能够使临界区的代码互斥执行,且执行的结果对下一个拿到锁的线程立即可见。个人感觉,大家普遍对锁的互斥性有普遍的理解,很容易忽略了锁提供的可见性的保证。试想,如果锁仅仅提供了互斥,在临界区代码执行完之后,不把相应的执行结果刷回主内存,那么下一个线程拿到 阅读全文
posted @ 2017-04-19 21:52 Mr.do 阅读(172) 评论(0) 推荐(0) 编辑
摘要:一、volatile关键字的语义 当用volatile关键字修饰一个变量时,这个变量就会有一点特殊: 1. 可见性:volatile能够保证其所修饰变量的可见性,即一个线程对volatile变量的写,对后续的读是立即可见的 2. 原子性:volatile是无法保证对变量复合操作的原子性的(如vola 阅读全文
posted @ 2017-04-18 08:44 Mr.do 阅读(171) 评论(0) 推荐(0) 编辑
摘要:一、 as-if-serial语义 上篇文章中说道,编译器,运行时的JIT编译器或处理器都会对指令进行重排序以提升程序的执行性能。但这些重排序需要满足as-if-serial语义,不能随便的进行重排序。as-if-serial语义即指:不管怎么重排序,单线程程序的执行结果不能被改变。因此,不能对存在 阅读全文
posted @ 2017-04-17 23:19 Mr.do 阅读(330) 评论(0) 推荐(0) 编辑
摘要:一、并发中的关键问题及其解决思路 并发中的关键问题:1. 线程之间如何通信 —— 线程之间如何交换信息2. 线程之间如何同步 —— 控制线程的相对执行顺序 两种解决思路: 1. 隐式通信,显示同步 —— 线程之间通过共享内存中的公共状态来隐式通信,那么就必须显示的指定线程见的互斥来实现同步2. 显式 阅读全文
posted @ 2017-04-17 21:28 Mr.do 阅读(889) 评论(0) 推荐(0) 编辑
摘要:前两天,听了公司DBA老大的分享,也是首次接触到了MGR这个架构,其对MGR的大力推崇,让作为业务开发人员的我也对其产生了兴趣,至此,用同事“老司机”的话说,是时候学习一波了。 一、CAP与MySQL 谈MGR之前,先要熟悉一下CAP与MySQL的关系。当前MySQL的master-slave架构, 阅读全文
posted @ 2017-04-08 15:12 Mr.do 阅读(1297) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示