上一页 1 ··· 3 4 5 6 7 8 9 下一页
摘要: 一不小心就死锁了,怎么办? 在上一篇文章中,我们用 Account.class 作为互斥锁,来解决银行业务里面的转账问题,虽然这个方案不存在并发问题,但是所有账户的转账操作都是串行的,性能太差。 向现实世界要答案 我们试想在古代,没有信息化,账户的存在形式真的就是一个账本,而且每个账户都有一个账本, 阅读全文
posted @ 2020-05-27 23:55 夜旦 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 和ipv4发邮件一样,毕竟ip只是用来找地址的,v4 v6使用上基本没区别。 但有一点得注意:java ipv6采用发送RST包来通知邮件服务器断开连接,这样会导致客户端抛 MessagingException:Exception reading response:Reading timeout,意 阅读全文
posted @ 2020-05-26 16:00 夜旦 阅读(437) 评论(0) 推荐(0) 编辑
摘要: 互斥锁(下):如何用一把锁保护多个资源? 一把锁可以保护多个资源,但是不能用多把锁来保护一个资源。 那如何保护多个资源? 当我们要保护多个资源时,首先要区分这些资源是否存在关联关系。 如下代码 1 class Account { 2 // 锁:保护账户余额 3 private final Objec 阅读全文
posted @ 2020-05-25 22:28 夜旦 阅读(310) 评论(0) 推荐(0) 编辑
摘要: 互斥锁(上):解决原子性问题 原子性问题的源头是线程切换,操作系统做线程切换是依赖 CPU 中断的,所以禁止 CPU 发生中断就能够禁止线程切换。 在早期单核 CPU 时代,这个方案的确是可行的,而且也有很多应用案例,但是并不适合多核场景。 这里我们以 32 位 CPU 上执行 long 型变量的写 阅读全文
posted @ 2020-05-23 18:29 夜旦 阅读(276) 评论(0) 推荐(0) 编辑
摘要: 遇到个bug,noClassFoundEx,很常见。 但是问题来了。 比如我的服务器目录是 /opt/tomcat/webapps/ROOT/WEB-INF/classes/cn/controller,开发目录是projectdir/src/main/java/cn/controller, 开发目录 阅读全文
posted @ 2020-05-22 11:25 夜旦 阅读(104) 评论(0) 推荐(0) 编辑
摘要: Java解决可见性和有序性问题:Java内存模型 什么是 Java 内存模型? Java 内存模型是个很复杂的规范,可以从不同的视角来解读,站在我们这些程序员的视角,本质上可以理解为, Java 内存模型规范了 JVM 如何提供按需禁用缓存和编译优化的方法。具体来说,这些方法包括 volatile、 阅读全文
posted @ 2020-05-20 22:27 夜旦 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 很多人都问,技术人员如何成长,每个阶段又是怎样的,如何才能走出当前的迷茫,实现自我的突破。所以我结合我自己10多年的从业经验,总结了技术人员成长的9个段位,希望对大家的职业生涯,有所帮助。 1. 刚接触编程的时候,会觉得这是个很神奇东西,平淡的英文字母,再加上标点符号,竟然可以有这么大魔力。会觉得编 阅读全文
posted @ 2020-05-19 16:08 夜旦 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 1.阅读官方吐槽 Note also that THERE IS NOT SUFFICIENT DOCUMENTATION HERE TO USE THESE FEATURES!!! You will need to read the appropriate RFCs mentioned above 阅读全文
posted @ 2020-05-19 15:09 夜旦 阅读(1958) 评论(0) 推荐(0) 编辑
摘要: 可见性、原子性和有序性问题:并发编程Bug的源头 核心矛盾:CPU、IO、内存三者之间的速度差异。 为了合理利用 CPU 的高性能,平衡这三者的速度差异,计算机体系结构、操作系统、编译程序都做出了贡献,主要体现为: 1.CPU 增加了缓存,以均衡与内存的速度差异; 2.操作系统增加了进程、线程,以分 阅读全文
posted @ 2020-05-19 07:57 夜旦 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 方法论:「跳出来,看全景」 和 「钻进去,看本质」 全景即知识地图,本质即理论基础。 并发领域的问题可以抽象为三个核心问题:分工、同步和互斥。 1.分工 分工有经典案例可供参考,比如烧水泡茶,饭店传菜;在java中比如fork/join、future、executor等,还有生产-消费者模式等。 2 阅读全文
posted @ 2020-05-18 22:18 夜旦 阅读(156) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 下一页