<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[reactivejun的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/reactivejun</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; reactivejun]]></copyright><item><title><![CDATA[设计模式--工厂和策略的区别]]></title><link>https://blog.youkuaiyun.com/reactivejun/article/details/125480856</link><guid>https://blog.youkuaiyun.com/reactivejun/article/details/125480856</guid><author>reactivejun</author><pubDate>Mon, 27 Jun 2022 11:29:26 +0800</pubDate><description><![CDATA[工厂(Factory)模式我们可以做如下理解，假设有一个Audi的公司生产汽车（似乎也不用假设了），它掌握一项核心的技术就是生产汽车，另一方面，它生产的汽车是有不同型号的，并且在不同的生产线上进行组装。当客户通过销售部门进行预定后，Audi公司将在指定的生产线上为客户生产出它所需要的汽车。策略(Strategy)模式在结构上与工厂模式类似，唯一的区别是工厂模式实例化一个产品的操作是在服务端来做的，换句话说客户端传达给服务端的只是某种标识，服务端根据该标识实例化一个对象。而策略模式的客户端传达给服务端的是一个]]></description><category></category></item><item><title><![CDATA[兑换零钱问题]]></title><link>https://blog.youkuaiyun.com/reactivejun/article/details/125407385</link><guid>https://blog.youkuaiyun.com/reactivejun/article/details/125407385</guid><author>reactivejun</author><pubDate>Wed, 22 Jun 2022 14:05:19 +0800</pubDate><description><![CDATA[动态规划解决兑换零钱问题]]></description><category></category></item><item><title><![CDATA[Wait/Notify线程通信方式]]></title><link>https://blog.youkuaiyun.com/reactivejun/article/details/123390419</link><guid>https://blog.youkuaiyun.com/reactivejun/article/details/123390419</guid><author>reactivejun</author><pubDate>Wed, 09 Mar 2022 23:36:16 +0800</pubDate><description><![CDATA[线程状态机

WATING和TIMED_WAITING被唤醒后，是进入BLOCKED阻塞状态，进入阻塞同步队列
线程状态与锁状态关系

● 锁池状态也就是同步队列，当调用notify和notifyall时，线程只是先进入了BLOCKED状态，只有拿到对象o的锁，才能唤醒线程；当调用wait时，会释放锁，并进入等待队列，同时线程状态变为WAITING。
● wait状态唤醒有三种方式
○ being notified, 即调用notify()或notifyAll()
○ interrupted, 这种方式会抛]]></description><category></category></item><item><title><![CDATA[LockSupport线程阻塞器]]></title><link>https://blog.youkuaiyun.com/reactivejun/article/details/123390376</link><guid>https://blog.youkuaiyun.com/reactivejun/article/details/123390376</guid><author>reactivejun</author><pubDate>Wed, 09 Mar 2022 23:30:52 +0800</pubDate><description><![CDATA[语义说明

线程阻塞器，用于锁和同步场景。底层有个二元信号量(即1个牌)，当持有令牌时，调用park会直接返回，否则阻塞。当执行unpark时，可以获取令牌。该类解决了阻塞轮询问题(busy wait)。
park(blocker)设置阻塞对象(实际写入Thread.parkBlocker属性)，一般就用this即可，用于记录阻塞原因，可以通过getBlocker(Thread)获取
park返回方式有

Thread.interrupt()
unpark
本身持有令牌
超时/到时间parkUntil，并不]]></description><category></category></item><item><title><![CDATA[一次线上大日志打挂机器引发的思考]]></title><link>https://blog.youkuaiyun.com/reactivejun/article/details/123070167</link><guid>https://blog.youkuaiyun.com/reactivejun/article/details/123070167</guid><author>reactivejun</author><pubDate>Tue, 22 Feb 2022 15:58:47 +0800</pubDate><description><![CDATA[本文通过一次日志打满问题引发的一次思考，探讨了常用日志问题的解决套路，引申思考了2个技术问题，其一：如何大日志预防与监控；其二：老应用如何快速支持日志降级能力，并在最后提供了一点技术上的解法思路供参考。]]></description><category></category></item></channel></rss>