摘要:
原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11395994.html CAS CAS算法是乐观锁的一种实现方式,CAS算法中又涉及到自旋锁。 CAS是英文单词Compare and Swap(比较并交换),是一种有名的无锁算法。无锁编程,即不使用锁 阅读全文
摘要:
原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11395931.html 锁的状态 锁的状态是通过对象监视器在对象头中的字段来表明的。 为了提升性能,JDK1.6引入了偏向锁、轻量级锁、重量级锁概念,来减少锁竞争带来的上下文切换,而正是新增的Java对 阅读全文
摘要:
原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11395881.html 分段锁 分段锁其实是一种锁的设计,并不是具体的一种锁,对于ConcurrentHashMap而言,其并发的实现就是通过分段锁的形式来实现高效的并发操作。 并发容器类的加锁机制是基 阅读全文
摘要:
原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11395841.html 悲观锁 总是假设最坏的情况,每次拿数据的时候都认为别人会修改,每次拿数据都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁,共享资源每次只给一个线程使用,其他线程阻塞,用完后才把 阅读全文
摘要:
原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11395812.html 互斥锁 在访问共享资源之前进行加锁操作,在访问完成之后进行解锁操作。加锁后,任何其他试图再次加锁的线程会被阻塞,直到当前线程解锁。如果解锁时有一个以上的线程阻塞,那么所有该锁上的 阅读全文
摘要:
原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11395763.html 独享锁 独享锁:该锁每一次只能被一个线程所持有,参考synchronized以及JUC包下的ReentrantLock 共享锁 共享锁:该锁可被多个线程共有,典型的就是Reent 阅读全文
摘要:
原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11395621.html 可重入锁 可重入锁指的是可重复可递归调用的锁,在外层使用锁之后,在内层仍然可以使用,并且不发生死锁(前提是同一个对象或者类) Note: ReentrantLock和synchr 阅读全文
摘要:
原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11395500.html 公平锁 公平锁是指多个线程按照申请锁的顺序来获取锁 非公平锁 非公平锁是指多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取锁;有可能会造成优先 阅读全文
摘要:
原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11394930.html OSI模型 OSI 模型把网络互联的框架分为应用层、表示层、会话层、传输层、网络层、数据链路层以及物理层等七层,每个层负责不同的功能。其中, 应用层,负责为应用程序提供统一的接口 阅读全文
摘要:
原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11394436.html 线程安全队列类图 两者的区别在于 ConcurrentLinkedQueue基于CAS的无锁技术,不需要在每个操作时使用锁,所以扩展性表现要更加优异,在常见的多线程访问场景,一般 阅读全文
摘要:
原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11393728.html Exception和Error都是继承了Throwable类,在Java中只有Throwable类型的实例才可以被抛出(throw)或者捕获(catch),它是异常处理机制的基本 阅读全文
摘要:
原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11393417.html 事务隔离级别 Note: Oracle默认的隔离级别是 READ COMMITTED MySQL InnoDB的隔离级别是 REPEATABLE READ 事务隔离级别越高,就越 阅读全文