程序员通常提到的线程都是用户线程,而操作系统是不知道用户线程这个东西的,操作系统跑的是内核线程,那么这两者之间就必须要有一种联系。所以会有以下几种常见的线程模型一、线程模型一对一线程模型一对一线程模型,也叫内核级线程模型。一个内核线程对应一个用户线程,内核负责每个线程的调度。实现简单,但是线程的创建、删除和切换的代价都由 CPU 完成,代价较高。Java用的就是这种模型。多对一线程模型多对一线程模

- 阅读全文 -



面试官:mysql自增主键用过吧?小菜:用过,建表时指定自动递增就行,然后插入数据就可以不用指定主键的值了面试官:不错,那你知道Mysql自增主键是严格递增的吗?小菜:肯定是递增的呀,诶,好像不对,也有见过不是连续的面试官:那你知道为什么会出现不连续的呢?小菜:emmm......这个岗位可能不是很适合我面试官:那今天就面到这里,还记得进来的路吧......一、自增主键自增主键采用数字型,占用空间

- 阅读全文 -



面向对象编程的语言里,多态是一个非常重要的特性,优点很多,类型解耦,灵活性,可替代性,接口性等。面向对象编程的三大特性:封装、继承,多态。封装和继承都很好理解,多态可能你每天都在用,但却不知道怎么解释它,当然,这也是新手从入门到放弃一个必经之路☺一、多态概念多态?顾名思义,就是一种行为具有多种形态。再具体一点,就是同一个接口,有多个不同的实现。要完全理解Java里的多态,还需要知道两个概念:向上转

- 阅读全文 -



在golang中,struct是设计来存储一组同一个类型或不同类型的数据的一个数据集合,是一种值类型,所以传递时需要区分是否传递其指针。interface也是一种数据结构,存储的是一组具有共性的方法,但是只做定义,其他类型只要实现了这些方法,就是实现了这个接口,可以类比JAVA中的抽象类。使用struct时,可以直接使用func方法数据结构中使用的方法,但是为了解耦这种方式,还是推荐使用inter

- 阅读全文 -



前言又是redis,又是mysql的,还有双写,一致性,乍一看,好像很高级的样子,这也是大厂比较热门的面试题。当然不仅是面试吧,实际开发中,这也是一个非常常见的场景。这道题抛开redis和mysql,其实就是在问缓存和数据库在双写的场景下,是如何保证数据一致性的?表急,跟着我的思路一起来捋一捋这个问题。说方案之前,先说说一致性和几种经典的缓存模式一致性一致性一般指分布式系统中,多个节点的数据的值是

- 阅读全文 -