摘要:经典的源码像诗,值得细细品味明确目的阅读书籍和源码最好带着自己的问题和目的,这样可以避免看了就忘的尴尬状态。学习中对并发等框架的使用基本流程源码阅读是有一定的套路的。 经典的源码像诗,值得细细品味 1. 明确目的 阅读书籍和源码最好带着自己的问题和目的,这样可以避免看了就忘的尴尬状态。 读研期间,为了掌握嵌入式开发,读了很多Linux的内核源码,摸索清楚了一个Linux系统从系统加电到...
摘要:当然,如果你的核心数够多,到个线程的并行度不满足的话,也可以自定义一个线程池来执行,不过这样的话,要注意自己维护这个线程池的初始化,释放等等操作了。 事情起源于一个bug排查,一个AsyncTask的子类,执行的时候发现onPreExecute方法执行了,doInBackground却迟迟没有被调用。懂AsyncTask一些表面原理的都知道,onPreExecute方法是在主线程执行,...
默认使用的线程池 不传executor时默认使用ForkJoinPool.commonPool() IntStream.range(0, 15).parallel().forEach(i -> { System.out.println(Thread.currentThread()); }); 输出 Thread[ForkJoinPool.commonPoo...
摘要:还有一个石头可能由之前的多个石头到达,这又是可以优化的地方。当前结果可由之前的结果得出,且有重复的搜索方法,就需要用。 [链接描述]leetcode 题目。 有点类似于jump game, 只不过这里对步数有了隐形的要求,当前步数和之前步数有关。如果我们用brute force的方法来解,每一步有三种可能,一共n个石头,时间复杂度就是O(3^n)。这其中有很多步数是多余的,第i个石头...
摘要:之后,在终端输入如果你需要支持,安装支持到这里还没有完,作为前端人,这个还不能正常工作,它需要一些依赖,下面我们来安装这些依赖安装查看回到目录安装之后需要在您的项目根目录建立一个文件,没有内容,空白即可。 鉴于 window 下基本用不到 vim,所以下面内容不再提及 window,具体可以在相应 github 中查看手册操作基础:已装有上有 nodejs(npm)。没装的可以移步官网...