摘要:經(jīng)典的源碼像詩(shī),值得細(xì)細(xì)品味明確目的閱讀書(shū)籍和源碼最好帶著自己的問(wèn)題和目的,這樣可以避免看了就忘的尷尬狀態(tài)。學(xué)習(xí)中對(duì)并發(fā)等框架的使用基本流程源碼閱讀是有一定的套路的。 經(jīng)典的源碼像詩(shī),值得細(xì)細(xì)品味 1. 明確目的 閱讀書(shū)籍和源碼最好帶著自己的問(wèn)題和目的,這樣可以避免看了就忘的尷尬狀態(tài)。 讀研期間,為了掌握嵌入式開(kāi)發(fā),讀了很多Linux的內(nèi)核源碼,摸索清楚了一個(gè)Linux系統(tǒng)從系統(tǒng)加電到...
摘要:當(dāng)然,如果你的核心數(shù)夠多,到個(gè)線程的并行度不滿足的話,也可以自定義一個(gè)線程池來(lái)執(zhí)行,不過(guò)這樣的話,要注意自己維護(hù)這個(gè)線程池的初始化,釋放等等操作了。 事情起源于一個(gè)bug排查,一個(gè)AsyncTask的子類(lèi),執(zhí)行的時(shí)候發(fā)現(xiàn)onPreExecute方法執(zhí)行了,doInBackground卻遲遲沒(méi)有被調(diào)用。懂AsyncTask一些表面原理的都知道,onPreExecute方法是在主線程執(zhí)行,...
默認(rèn)使用的線程池 不傳executor時(shí)默認(rèn)使用ForkJoinPool.commonPool() IntStream.range(0, 15).parallel().forEach(i -> { System.out.println(Thread.currentThread()); }); 輸出 Thread[ForkJoinPool.commonPoo...
摘要:還有一個(gè)石頭可能由之前的多個(gè)石頭到達(dá),這又是可以優(yōu)化的地方。當(dāng)前結(jié)果可由之前的結(jié)果得出,且有重復(fù)的搜索方法,就需要用。 [鏈接描述]leetcode 題目。 有點(diǎn)類(lèi)似于jump game, 只不過(guò)這里對(duì)步數(shù)有了隱形的要求,當(dāng)前步數(shù)和之前步數(shù)有關(guān)。如果我們用brute force的方法來(lái)解,每一步有三種可能,一共n個(gè)石頭,時(shí)間復(fù)雜度就是O(3^n)。這其中有很多步數(shù)是多余的,第i個(gè)石頭...
摘要:之后,在終端輸入如果你需要支持,安裝支持到這里還沒(méi)有完,作為前端人,這個(gè)還不能正常工作,它需要一些依賴(lài),下面我們來(lái)安裝這些依賴(lài)安裝查看回到目錄安裝之后需要在您的項(xiàng)目根目錄建立一個(gè)文件,沒(méi)有內(nèi)容,空白即可。 鑒于 window 下基本用不到 vim,所以下面內(nèi)容不再提及 window,具體可以在相應(yīng) github 中查看手冊(cè)操作基礎(chǔ):已裝有上有 nodejs(npm)。沒(méi)裝的可以移步官網(wǎng)...