感覺多線程的知識又多又雜,自從接觸java,就在一遍一遍捋脈絡和深入學習?,F(xiàn)在將這次的學習成果展示如下。
什么是多線程? |
操作系統(tǒng)運行一個程序,就是一個線程。同時運行多個程序,就是多線程。即在同一時間,并行做多件事。
“并行”是相對于我們這些用戶來說的,對于cpu來說,其在同一時間只能操作一個線程。cpu就像同時負責多個流水線的女工:在流水線①上操作——將①暫?!チ魉€②上操作——將②暫?!祷亓魉€①繼續(xù)操作……
所以:單核處理器也支持多線程執(zhí)行代碼。敲黑板,這是一個知識點。
為什么使用多線程? |
簡單來說,就是為了讓程序運行的更快,縮短程序的響應時間。舉個栗子??。用戶下單了一個商品,程序大致需要做以下幾個步驟:
- 減庫存
- 往數(shù)據(jù)庫插入訂單數(shù)據(jù)
- 給賣家發(fā)通知
如果有3個線程同時做這3件事,那用時肯定能縮短。
什么是線程安全? |
線程安全就是多個線程同時操作某個共享資源時,不會產(chǎn)生沖突。
“多個”、“同時”、“共享”,對這3個詞畫個圈重點標注出來。
為了保證線程安全,有哪些手段? |
1、使用鎖:synchronized、lock
2、使用并發(fā)容器:currentHashMap、阻塞隊列等
3、使用并發(fā)工具類:countdownLatch等
4、使用原子操作類:atomicInteger等。
多線程的脈絡圖 |
后記 |
(1)多線程專欄的傳送門,里面有一路學習多線程的印記:
多線程專欄文章來源:http://www.zghlxwxcb.cn/news/detail-675020.html
(2)“怕什么真理無窮,進一寸有一寸的歡喜”,只要有進步就好~ 加油~文章來源地址http://www.zghlxwxcb.cn/news/detail-675020.html
到了這里,關于用大白話來講講多線程的知識架構(gòu)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!