上一页 1 2 3 4 5 6 7 8 9 ··· 29 下一页

2022年3月3日

互斥锁(上):解决原子性问题

摘要: 1)回顾一下什么是原子性? 一个或多个操作在CPU执行的过程中不被中断的特性,称为原子性。 2)原子性问题的源头是什么? 线程切换 3)原子性问题到底该如何解决呢? 既然原子性问题的产生源头是线程切换,而线程切换依赖CPU中断的,所以禁止CPU发生中断就能禁止线程切换 4)为什么说单核的时候好解决原 阅读全文

posted @ 2022-03-03 22:04 Love&Share 阅读(157) 评论(0) 推荐(0) 编辑

Java内存模型:看Java如何解决可见性和有序性问题

摘要: 1)导致可见性的原因是缓存,导致有序性的原因是编译优化,那我们最直接的解决可见性和有序性的方案是什么? 禁用缓存和编译优化 2)1是暴力解法,虽然问题解决了,但是性能拉跨了,那合理的解决方案是什么? 按需禁用缓存以及编译优化 3)如何做到“按需禁用”呢? 所谓“按需禁用”其实就是指按照程序员的要求来 阅读全文

posted @ 2022-03-03 22:01 Love&Share 阅读(121) 评论(0) 推荐(0) 编辑

可见性、原子性和有序性问题:并发编程Bug的源头

摘要: 1)如何快速而又精准地解决“并发”类的疑难杂症? 理解这件事情的本质,追本溯源,深入分析这些 Bug 的源头在哪里。 2)CPU、内存、I/O 设备的速度差异有多大? CPU 是天上一天,内存是地上一年(假设 CPU 执行一条普通指令需要一天,那么 CPU 读写内存得等待一年的时间) 内存和 I/O 阅读全文

posted @ 2022-03-03 21:59 Love&Share 阅读(88) 评论(0) 推荐(0) 编辑

普通索引和唯一索引,应该怎么选择?

摘要: 1)什么是唯一索引? 不允许具有索引值相同的行,比如身份证唯一的 案例:假设你在维护一个市民系统,每个人都有一个唯一的身份证号,而且业务代码已经保证了不会写入两个重复的身份证号。如果市民系统需要按照身份证号查姓名,那该如何建索引? select name from CUser where id_ca 阅读全文

posted @ 2022-03-03 21:56 Love&Share 阅读(519) 评论(0) 推荐(1) 编辑

2022年2月27日

怎么减少行锁对性能的影响?

摘要: 1)MyISAM 被 InnoDB 替代的重要原因之一是什么? MyISAM 引擎就不支持行锁,只能使用表锁,同一张表上任何时刻只能有一个更新在执行,影响到业务并发度。 InnoDB 是支持行锁的。 2)两阶段锁协议是什么? 在 InnoDB 事务中,行锁是在需要的时候才加上的,但并不是不需要了就立 阅读全文

posted @ 2022-02-27 22:11 Love&Share 阅读(416) 评论(0) 推荐(0) 编辑

2022年2月26日

全局锁和表锁 :给表加个字段怎么有这么多阻碍?

摘要: 1)数据库为什么要设计锁? 处理并发问题,因为数据库是共享资源 2)根据加锁的范围,mysql里面的锁有哪几种? 全局锁 表锁 行锁 3)全局锁 what? 对整个数据库实例加锁 why? 优点:防止在备份期间有业务修改数据库的数据,导致问题的出现。 how? 让整个库只读的命令:Flush tab 阅读全文

posted @ 2022-02-26 21:14 Love&Share 阅读(170) 评论(0) 推荐(0) 编辑

2021年11月24日

面向对象相比面向过程有哪些优势,面向过程编程真的过时了吗?

摘要: 首先我们来看看面向过程和面向对象的对比。 面向对象是以类或者对象作为基本单位。以封装,抽象,继承,多态来作为指导方针设计程序的,数据和行为是放在一起的,都在类里面,比如人的吃喝拉撒,人是基本单位。而面向过程是以方法(函数,行为)为基本的单位,设计程序的时候再将其方法拼接起来,就组合成了一个程序。比如 阅读全文

posted @ 2021-11-24 11:14 Love&Share 阅读(494) 评论(0) 推荐(0) 编辑

封装,继承,抽象,多态的理解

摘要: 封装 What:隐藏信息,保护数据访问。 How:暴露有限接口和属性,需要编程语言提供访问控制的语法。 Why:提高代码可维护性;降低接口复杂度,提高类的易用性。 抽象 What: 隐藏具体实现,使用者只需关心功能,无需关心实现。 How: 通过接口类或者抽象类实现,特殊语法机制非必须。 Why: 阅读全文

posted @ 2021-11-24 11:13 Love&Share 阅读(189) 评论(0) 推荐(0) 编辑

2021年11月9日

9 G1 回收器

摘要: 定义:Garbage First 04年论文发布 09年JDK 6u14体验 12年JDK 7u4官方支持 17年JDK9默认 适用场景 同时注重吞吐量和低延迟,默认的暂停目标是200ms 超大堆内存,会将堆划分为多个大小相等的Region,每个区域都可作为伊甸园,幸存区,老年代 整体是标记+整理算 阅读全文

posted @ 2021-11-09 19:14 Love&Share 阅读(141) 评论(0) 推荐(0) 编辑

2021年10月26日

进程的状态与控制

摘要: 程序(进程)要运行=PCB+内存+CPU 首先从磁盘copy到内存,再建立PCB,通过PCB知道入口位置,再跳到入口这个位置执行程序。 通过上面的图,回味一下: 1.每种状态拥有了哪些资源?(PCB 内存 CPU) 2.什么时候需要状态转变? 3.状态转变时要做什么事情?(分配,申请,归还,修改PC 阅读全文

posted @ 2021-10-26 23:00 Love&Share 阅读(35) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 7 8 9 ··· 29 下一页

导航