- Java多線程編程實(shí)戰(zhàn)指南:設(shè)計(jì)模式篇(第2版)
- 黃文海
- 585字
- 2021-10-15 19:24:53
1.7 多線程編程常用術(shù)語
多線程編程常用術(shù)語如表1-1所示。
表1-1 多線程編程常用術(shù)語

續(xù)表

清單1-4 工作者線程的示例代碼

清單1-5 非線程安全的計(jì)數(shù)器類

清單1-6 線程安全的計(jì)數(shù)器類

[1]“正常停止”指Java虛擬機(jī)既不是通過System.exit調(diào)用來停止的,也不是通過強(qiáng)制停止進(jìn)程的方式來停止的(如在Linux系統(tǒng)下使用kill命令停止Java進(jìn)程)。
[2]這是從Java虛擬機(jī)規(guī)范(Java Virtual Machine Specification)的角度來說的,在實(shí)現(xiàn)具體的Java虛擬機(jī)的時(shí)候,可能會(huì)用一個(gè)調(diào)用棧來實(shí)現(xiàn)這兩種調(diào)用棧的功能。(參見鏈接[1])
[3]即運(yùn)行Java虛擬機(jī)的主機(jī)。
[4]線程調(diào)度器是操作系統(tǒng)的一部分。
[5]如文件讀/寫和阻塞式Socket讀/寫。
[6]線程所執(zhí)行的代碼從CPU緩存中訪問其所需的變量值比從主內(nèi)存(RAM)中訪問相應(yīng)的變量值要快得多,但是上下文切換會(huì)導(dǎo)致相關(guān)線程所訪問的CPU緩存內(nèi)容失效,這使得相關(guān)線程稍后會(huì)被重新調(diào)度到運(yùn)行時(shí),其不得不再次訪問主內(nèi)存中的變量以重新創(chuàng)建CPU緩存內(nèi)容。
[7]相應(yīng)的可執(zhí)行文件為:Windows安裝目錄\System32\perfmon.exe。
[8]以Linux版JDK為例,相應(yīng)的jvisualvm工具的可執(zhí)行文件為:JDK主目錄/bin/jstack。
[9]以Linux版JDK為例,相應(yīng)的jstack工具的可執(zhí)行文件為:JDK主目錄/bin/jstack。
[10]有關(guān)指令重排序的進(jìn)一步內(nèi)容,請(qǐng)參考Java內(nèi)存模型(JMM,Java Memory Model)的相關(guān)資料。
[11]當(dāng)然,如果Web服務(wù)端程序?qū)Χ鄠€(gè)請(qǐng)求的處理之間存在共享資源(比如數(shù)據(jù)庫),那么對(duì)一個(gè)請(qǐng)求的處理快慢實(shí)際上仍然會(huì)影響到對(duì)其他請(qǐng)求的處理。
[12]例如,一個(gè)系統(tǒng)被分解為多個(gè)模塊,每個(gè)模塊是一個(gè)Java進(jìn)程(程序),各個(gè)模塊間通過網(wǎng)絡(luò)通信。
- 深入淺出數(shù)據(jù)科學(xué):Python編程
- Oracle Exadata性能優(yōu)化
- 匯編語言程序設(shè)計(jì)(第3版)
- Spring實(shí)戰(zhàn)(第5版)
- 正則表達(dá)式經(jīng)典實(shí)例(第2版)
- Mastering Rust
- Python編程實(shí)戰(zhàn)
- Python數(shù)據(jù)結(jié)構(gòu)與算法(視頻教學(xué)版)
- Jenkins Continuous Integration Cookbook(Second Edition)
- Visual C++開發(fā)入行真功夫
- Unity&VR游戲美術(shù)設(shè)計(jì)實(shí)戰(zhàn)
- Serverless Web Applications with React and Firebase
- Web Developer's Reference Guide
- Elasticsearch Blueprints
- 數(shù)字媒體技術(shù)概論