本文翻譯自 Kotlin DSL: from Theory to Practice[https://www.cuba-platform.com/blog/kotlin-dsl...
本文翻譯自 Kotlin DSL: from Theory to Practice[https://www.cuba-platform.com/blog/kotlin-dsl...
1. 使用迭代器 如果想要在循環(huán)的同時(shí)能夠修改 vector,那么可以使用 iterator 代替 const_iterator拌禾。 2. 使用 auto (C++11) / ...
CMake 中 function 和 macro 的區(qū)別 通過(guò)代碼直觀地來(lái)看看區(qū)別。 上面的例子來(lái)自 function-vs-macro-in-cmake[https://s...
這一章我們將從一個(gè)通用常規(guī)工程的角度來(lái)看一個(gè) CMake 工程的常用阻止結(jié)構(gòu)。先來(lái)看看工程目錄結(jié)構(gòu): 我們有 4 個(gè)文件夾遣蚀,1 個(gè) CMakeLists.txt 文件。 bu...
CMake 使用慣例 在項(xiàng)目根目錄建一個(gè) build 目錄:mkdir build && cd build 在 build 目錄下執(zhí)行 cmake .. 同樣在 build ...
16.1 什么是內(nèi)存模型,為什么需要它 假設(shè)一個(gè)線程為變量 aVariable 賦值: 內(nèi)存模型需要解決這個(gè)問題:“在什么條件下芭梯,讀取 aVariable 的線程將看到這個(gè)值...
在 java.util.concurrent 包的許多類中险耀,例如 Semaphore 和 ConcurrentLinkedQueue,都提供了比 synchronized 機(jī)...
如果類庫(kù)沒有提供你需要的功能,那么還可以使用 Java 語(yǔ)言和類庫(kù)提供的底層機(jī)制來(lái)構(gòu)造自己的同步機(jī)制澎媒,包括內(nèi)置的條件隊(duì)列搞乏、顯式的 Condition 對(duì)象以及 Abstrac...
11.3 線程引入的開銷 11.3.1 上下文切換 切換上下文需要一定的開銷请敦,而在線程調(diào)度過(guò)程中需要訪問由操作系統(tǒng)和 JVM 共享的數(shù)據(jù)結(jié)構(gòu)。應(yīng)用程序柏卤、操作系統(tǒng)以及 JVM ...
在安全性與活躍性之間通常存在著某種制衡冬三。我們使用加鎖機(jī)制來(lái)確保線程安全,但如果過(guò)度地使用加鎖缘缚,則可能導(dǎo)致鎖順序死鎖(Lock-Ording Deadlock)勾笆。同樣,我們使用...
8.3 配置 ThreadPoolExecutor ThreadPoolExecutor 為一些 Executor 提供了基本的實(shí)現(xiàn)桥滨,這些 Executor 是由 Execu...
7.1 任務(wù)取消 如果外部代碼能在某個(gè)操作正常完成之前將其置入 “完成” 狀態(tài)窝爪,那么這個(gè)操作就可以成為可取消的(Cancellable)。取消某個(gè)操作的原因很多: 用戶請(qǐng)求取...
6.2 Executor 框架 在 Java 類庫(kù)中齐媒,任務(wù)執(zhí)行的主要抽象不是 Thread蒲每,而是 Executor。 雖然 Executor 是個(gè)簡(jiǎn)單的接口喻括,但它卻為靈活且強(qiáng)...
5.1 同步容器類 同步容器類包括 Vector 和 Hashtable邀杏,二者是早期 JDK 的一部分,此外還包括在 JDK 1.2 中添加的一些功能相似的類唬血,這些同步的封裝...
4.2 實(shí)例封閉 4.2.2 示例:車輛追蹤 程序清單 4-4 給出了一個(gè)基于 Java 監(jiān)視器模式實(shí)現(xiàn)的“車輛追蹤器”望蜡,其中使用了程序清單 4-5 中的 MutablePo...
3.1 可見性 3.1.3 加鎖與可見性 內(nèi)置鎖可以用于確保某個(gè)線程以一種可預(yù)測(cè)的方法來(lái)查看另一個(gè)線程的執(zhí)行結(jié)果。當(dāng)線程 A 執(zhí)行某個(gè)同步代碼塊時(shí)拷恨,線程 B 隨后進(jìn)入由同一個(gè)...
用法 ThreadLocal<T> 是帶了一個(gè)泛型 T 的脖律,意思就是不同線程從同一個(gè) ThreadLocal 實(shí)例中會(huì)取出屬于自己的 T 類型的實(shí)例(這些實(shí)例在不同線程中是不...