随笔分类 - java相关
摘要:是什么 给定一定数量的许可证,用于调用者获取,如果许可证都被占用,那么就进入阻塞状态; 可以理解为上公共厕所,厕所只有2个坑位,目前有3个人,那么同时只能有2个人进去,第三人想要进去那么就必须等占用坑位的人完事之后才OK 目前在业务上没遇到信号量场景,能想到的就是对单体应用请求限流,下面就给出一个示
阅读全文
摘要:利用HttpServletRequestWrapper实现请求参数扩展处理 对HttpServletRequestWrapper包装实现 import javax.servlet.ReadListener; import javax.servlet.ServletInputStream; impor
阅读全文
摘要:静态代理 只能代理某一特定类型的接口或类, 需要对于不同类型的接口或类写一个代理类 动态代理 JDK动态代理 可以代理不同类型的接口 cglib动态代理 可以代理不同类型的接口或类 代码示例 静态代理代码示例 /** * * 物流服务 * @author: haibin.tang * @date:
阅读全文
摘要:让线程终止的方法 调用Thread实例方法 stop() 特点 线程会立即终止,可能会丢失任务,不可控. 官方已废弃该方法 调用 Thread实例方法 interrupt() 特点 不会主动终止线程, 只是发出中断信号, 由程序员自己控制是否要终止线程 api 方法 public void inte
阅读全文
摘要:概述 wait与notify方法是jdk定义在Object类中的方法,因此所有类实例都可以成为用来实现线程之间通讯的监视器 Object类中方法定义 /** * 会使调用线程状态变更为WATING状态 并且 会释放锁 */ public final void wait() throws Interr
阅读全文
摘要:JDK中提供挂起线程的方式 suspend与resume suspend作用 挂起线程, 不会释放锁,并且线程的状态是 RUNNABLE resume作用 唤醒线程 注意事项 JDK已废弃该方法 suspend会挂起线程但是不会释放锁并且状态还是处于RUNNABLE状态 resume必须在suspe
阅读全文
摘要:AQS是什么 抽象队列同步器, 是JDK juc包下 AbstractQueuedSynchronizer 类的简写,实现了FIFO(First Input First Output)先进先出队列模型用以将获取锁资源的线程进行排队处理,并且提供锁排队线程的唤醒+锁分配机制。 类结构图 非公平锁(Re
阅读全文