分类: Java

日积月累

3 篇文章

AQS的理解
对AQS的理解juc包下多个组件的底层实现,如lock,semaphore、countdownlatchAQS提供了两种锁的机制,分别是排它锁和共享锁(读锁)排它锁,存在多个线程去竞争同一共享资源,同一时刻只允许一个线程访问资源,比如lock中的ReentrantLock重入锁的实现就用到了AQS中排它锁共享锁又称读锁,允许同一时刻多个线程同时访问…
synchronized的锁升级
1、锁对象 锁就是一个对象,每个对象都能成为锁 当synchronized关键字修饰同步代码块时,锁对象需要指定,一般为当前类。 当synchronized关键字修饰静态方法时,锁对象是当前类Class对象。 当synchronized关键字修饰方法时,锁对象是当前方法的对象。 2、Synchronized锁标记怎么存储的? 可以了解到在虚拟机中,…
lock和synchronize的区别
1、功能角度 lock和synchronize都是java中去用来解决线程安全问题的工具 2、从特性方面 synchronize是java中的关键字、lock是juc包下的一个接口,这个接口有很多实现类,其中就包括ReentrantLock这个重入锁的实现 3、粒度 把synchronize修饰在方法层面,另一种修饰在代码块上,可以通过synchr…