- 博客(5)
- 收藏
- 关注
原创 设计模式--工厂和策略的区别
工厂(Factory)模式我们可以做如下理解,假设有一个Audi的公司生产汽车(似乎也不用假设了),它掌握一项核心的技术就是生产汽车,另一方面,它生产的汽车是有不同型号的,并且在不同的生产线上进行组装。当客户通过销售部门进行预定后,Audi公司将在指定的生产线上为客户生产出它所需要的汽车。策略(Strategy)模式在结构上与工厂模式类似,唯一的区别是工厂模式实例化一个产品的操作是在服务端来做的,换句话说客户端传达给服务端的只是某种标识,服务端根据该标识实例化一个对象。而策略模式的客户端传达给服务端的是一个
2022-06-27 11:29:26
589
原创 Wait/Notify线程通信方式
线程状态机WATING和TIMED_WAITING被唤醒后,是进入BLOCKED阻塞状态,进入阻塞同步队列线程状态与锁状态关系● 锁池状态也就是同步队列,当调用notify和notifyall时,线程只是先进入了BLOCKED状态,只有拿到对象o的锁,才能唤醒线程;当调用wait时,会释放锁,并进入等待队列,同时线程状态变为WAITING。● wait状态唤醒有三种方式○ being notified, 即调用notify()或notifyAll()○ interrupted, 这种方式会抛
2022-03-09 23:36:16
204
原创 LockSupport线程阻塞器
语义说明线程阻塞器,用于锁和同步场景。底层有个二元信号量(即1个牌),当持有令牌时,调用park会直接返回,否则阻塞。当执行unpark时,可以获取令牌。该类解决了阻塞轮询问题(busy wait)。park(blocker)设置阻塞对象(实际写入Thread.parkBlocker属性),一般就用this即可,用于记录阻塞原因,可以通过getBlocker(Thread)获取park返回方式有Thread.interrupt()unpark本身持有令牌超时/到时间parkUntil,并不
2022-03-09 23:30:52
360
原创 一次线上大日志打挂机器引发的思考
本文通过一次日志打满问题引发的一次思考,探讨了常用日志问题的解决套路,引申思考了2个技术问题,其一:如何大日志预防与监控;其二:老应用如何快速支持日志降级能力,并在最后提供了一点技术上的解法思路供参考。
2022-02-22 15:58:47
286
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人