摘要: 一、CAS(比较并交换-乐观锁机制-锁自旋) 1.1 概念及特性 CAS(Compare And Swap/Set)比较并交换,CAS 算法的过程是这样:它包含 3 个参数CAS(V,E,N)。V 表示要更新的变量(内存值),E 表示预期值(旧的),N 表示新值。当且仅当 V 值等于 E 值时,才会 阅读全文
posted @ 2020-08-13 22:27 FireCode 阅读(894) 评论(0) 推荐(0)
摘要: 一、乐观锁 乐观锁是一种乐观思想,即认为读多写少,遇到并发写的可能性低,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,采取在写时先读出当前版本号,然后加锁操作(比较跟上一次的版本号,如果一样则更新),如果失败则要重复读-比较-写的操作 阅读全文
posted @ 2020-08-13 21:50 FireCode 阅读(176) 评论(0) 推荐(0)
摘要: 一、接口继承关系和实现 集合类存放于 Java.util 包中,主要有 3 种:set(集)、list(列表包含 Queue)和 map(映射)。 1. Collection:Collection 是集合 List、Set、Queue 的最基本的接口。 2. Iterator:迭代器,可以通过迭代器 阅读全文
posted @ 2020-08-13 15:05 FireCode 阅读(142) 评论(0) 推荐(0)
摘要: 一、常见IO模型 1.1 阻塞 IO 模型 最传统的一种 IO 模型,即在读写数据过程中会发生阻塞现象。当用户线程发出 IO 请求之后,内核会去查看数据是否就绪,如果没有就绪就会等待数据就绪,而用户线程就会处于阻塞状态,用户线程交出 CPU。当数据就绪之后,内核会将数据拷贝到用户线程,并返回结果给用 阅读全文
posted @ 2020-08-13 14:04 FireCode 阅读(140) 评论(0) 推荐(0)