`
文章列表
转自:来吧 主流编程语言图谱+知识库都在这了   Java Web Java EE   Java SE   Python 
转自:每个程序员都应该收藏的算法复杂度速查表   数据结构思维导图                  

[置顶] 技术资料链接

    博客分类:
  • Java
 
LeeCode http://www.cnblogs.com/grandyang/p/4606334.html   Promise语法 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise   ECMAScript 6 标准入门 http://es6.ruanyifeng.com/   微服务架构 https://martinfowler.com/articles/microservices.html   ThoughtWorks技术雷达 ht ...

自旋锁

    博客分类:
  • Lock
原创转载请注明出处:https://agilestyle.iteye.com/blog/2443652   CAS CAS算法是乐观锁的一种实现方式,CAS算法中又涉及到自旋锁。 CAS是英文单词Compare and Swap(比较并交换),是一种有名的无锁算法。无锁编程,即不使用锁的情况下 ...
原创转载请注明出处:https://agilestyle.iteye.com/blog/2443647   锁的状态 无锁状态 偏向锁状态 轻量级锁状态 重量级锁状态 锁的状态是通过对象监视器在对象头中的字段来表明的。 为了提升性能,JDK1.6引入了偏向锁、轻量级 ...

分段锁

    博客分类:
  • Lock
原创转载请注明出处:https://agilestyle.iteye.com/blog/2443641   分段锁 分段锁其实是一种锁的设计,并不是具体的一种锁,对于ConcurrentHashMap而言,其并发的实现就是通过分段锁的形式来实现高效的并发操作。   并发容器类的加 ...

乐观锁/悲观锁

    博客分类:
  • Lock
原创转载请注明出处:https://agilestyle.iteye.com/blog/2443638   悲观锁 总是假设最坏的情况,每次拿数据的时候都认为别人会修改,每次拿数据都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁,共享资源每次只给一个线程使用,其他线程阻塞,用完后才把资源转让给其他线程。 比如: RDBMS中的行锁、表锁等都是在操作之前先上锁 Java中synchronized和ReentrantLock等读占锁就是悲观锁思想的实现   乐观锁 总是假设最好的情况,每次拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没 ...

互斥锁/读写锁

    博客分类:
  • Lock
原创转载请注明出处:https://agilestyle.iteye.com/blog/2443637   互斥锁 在访问共享资源之前进行加锁操作,在访问完成之后进行解锁操作。加锁后,任何其他试图再次加锁的线程会被阻塞,直到当前线程解锁。如果解锁时有一个以上的线程阻塞,那么所有该锁上的线程都会变成就绪状态,第一个变为就绪状态的线程又执行加锁操作,那么其他的线程又会进入等待。在这种方式下,只有一个线程能够访问被互斥锁保护的资源。举个形象的例子:多个人抢一个马桶   读写锁 读写锁既是互斥锁,又是共享锁,read模式是共享,write模式是互斥(排他锁),参考JUC包下的ReadWr ...

独享锁/共享锁

    博客分类:
  • Lock
 
原创转载请注明出处:https://agilestyle.iteye.com/blog/2443635   独享锁:该锁每一次只能被一个线程所持有,参考synchronized以及JUC包下的ReentrantLock 共享锁:该锁可被多个线程共有,典型的就是ReentrantReadWriteLock里的读锁,它的读锁是可以被共享的,但是它的写锁每次只能被读占,读锁的共享可保证并发读是非常高效的,但是读写和写写,写读都是互斥的,参考JUC包下的ReentrantReadWriteLock   独享锁和共享锁都是通过AQS队列来实现的,通过实现不同的方法,来实现独享或者共享。   ...
原创转载请注明出处:https://agilestyle.iteye.com/blog/2443634   可重入锁 可重入锁指的是可重复可递归调用的锁,在外层使用锁之后,在内层仍然可以使用,并且不发生死锁(前提是同一个对象或者类) Note: ReentrantLock和synchronized都是可重入锁 public class TestLock { public synchronized void test1() throws InterruptedException { Thread.sleep(1000); System. ...

公平锁/非公平锁

    博客分类:
  • Lock
原创转载请注明出处:https://agilestyle.iteye.com/blog/2443633   公平锁 公平锁是指多个线程按照申请锁的顺序来获取锁   非公平锁 非公平锁是指多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取锁;有可能会造成优先级反转或者线程饥饿现象。非公平锁的优点是吞吐量比公平锁大。   ReentrantLock ReentrantLock可以通过构造函数指定该锁是否是公平锁,默认是非公平锁。  Synchronized Synchronized是一种非公平锁,并不像ReentrantLock是通过AQS ...
原创转载请注明出处:https://agilestyle.iteye.com/blog/2443538   线程安全队列类图 两者的区别在于 ConcurrentLinkedQueue基于CAS的无锁技术,不需要在每个操作时使用锁,所以扩展性表现要更加优异,在常见的多线程访问场景,一般可以提供较高吞吐量。 LinkedBlockingQueue内部则是基于锁,并提供了BlockingQueue的等待性方法。 BlockingQueue基本都是基于锁实现,比如典型的LinkedBlockingQueue   有界队列和无界队列 ArrayBlockingQueue是 ...

MyBatis工作流程

    博客分类:
  • ORM
Reference https://www.cnblogs.com/wuzhenzhao/p/11103017.html https://blog.csdn.net/u010890358/article/details/80665753

服务发现

Reference: https://www.nginx.com/blog/service-discovery-in-a-microservices-architecture/
原创转载请注明出处:https://agilestyle.iteye.com/blog/2443360   OSI参考模型与TCP/IP参考模型与TCP/IP协议栈   TCP/IP分层模型   5层参考模型 — 综合了OSI和TCP/IP的优点    5层参考模型的数据封装与解封装   应用层:报文 传输层:报文段 网络层:IP数据报、分组      路由器   数据链路层:帧                    网桥、交换机 物理层:比特流                    中继器、集线器       
Global site tag (gtag.js) - Google Analytics