java
M_O_
书山有路勤为径,学海无崖苦作舟
展开
-
java 动态代理示例
package cn.com.sjfx.corpwx;import org.springframework.cglib.proxy.Enhancer;import org.springframework.cglib.proxy.MethodInterceptor;import org.springframework.cglib.proxy.MethodProxy;import java...原创 2019-04-28 11:51:57 · 99 阅读 · 0 评论 -
AbstractQueuedSynchronizer 同步队列
AbstractQueuedSynchronizer 维护一个同步变量state,用这个变量来维护锁的状态, 变量值为0表示没有线程加锁,变量值大于0表示有线程加锁了。 对于线程来说, 加锁就是增加这个同步变量,解锁就是释放这个同步变量,增加成功表示加锁成功,线程从此拥有锁。锁分两种类型, 独占锁和共享锁, 独占锁代表只有一个线程可以加锁成功, 共享锁代表有多个线程可以加锁成功。线程在竞争失败...原创 2019-08-19 21:19:45 · 195 阅读 · 0 评论 -
AbstractQueuedSynchronizer 独占锁分析
独占锁, 即一次允许一个线程进入临界区。加锁流程 public final void acquire(int arg) { if (!tryAcquire(arg) && acquireQueued(addWaiter(Node.EXCLUSIVE), arg)) selfInterrupt(); }...原创 2019-08-20 15:42:03 · 167 阅读 · 0 评论 -
java 日志库搭配
是不是经常被各种日志库搞得头晕脑转? 看看官方提供的日志库搭配吧。log4j 搭配http://logging.apache.org/log4j/2.x/runtime-dependencies.html模块说明依赖log4j-apilog4j的apiNonelog4j-corelog4j的实现DependencyTreelog4j-1.2-api...原创 2019-09-02 21:46:10 · 205 阅读 · 0 评论