摘要:
一、买卖股票的最佳时机(LeetCode 121) 1.1 题目介绍 "121. 买卖股票的最佳时机" 1.2 解题思路 想要利润最大,尽可能地要保证购买的时候价格最低,总利润最高。由此可以列出状态转移方程。 buy = min{buy,price} profilt = max{profilt,pr 阅读全文
摘要:
一、概念 通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划常常适用于有重叠子问题和最优子结构性质的问题。 二、题型特点 计数 有多少种方式走到最右下角 求最大值最小值 从左上角走到右下角的最大数字和 求存在性 能否选出k个数使得和为sum 三、如何使用动态规划 这里先看一道Lee 阅读全文
摘要:
介绍 JDK1.8引入CompletableFuture类。 使用方法 API supplyAsync方法 JDK方法描述 应用场景 请求A的执行方法X,需满足下列需求: ①请求B、C、D中任一一个请求有返回结果,则X方法返回响应结果。 ②请求B、C、D中都执行完,则X方法返回响应结果。 源码阅读 阅读全文
摘要:
一、线程池的介绍 线程池一种性能优化的重要手段。优化点在于创建线程和销毁线程会带来资源和时间上的消耗,而且线程池可以对线程进行管理,则可以减少这种损耗。 使用线程池的好处如下: 降低资源的消耗 提高响应的速度 提高线程的可管理性 二、线程池的使用 运行结果 如果将线程池的大小设置为3, ,则运行结果 阅读全文
摘要:
ThreadLocal,叫做线程本地存储,也可以叫做线程本地变量。ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。 一、如何使用 二、什么场景下使用 需要避免任务在共享资源上产生冲突。 三、源码分析 3.1 WeakReference 讲到弱引用,就 阅读全文